您如何在Go中执行结构的深层复制?

亚当·索弗

我正在尝试执行以下结构的深层副本:

// Ternary Tree
type Tree struct {
    Left  *Tree
    Mid *Tree
    Right *Tree
    Value interface{}
    Parent *Tree
    Orientation string
    IsTerminal bool
    Type string
}

以下是对不起的尝试。看来我在根处创建了新树,但它的孩子仍然指向内存中的相同地址。

func (tree *Tree) CopyTree() *Tree {
    if (tree == nil) {
        return nil
    } else {
        copiedTree := &Tree {
            tree.Left.CopyTree(),
            tree.Mid.CopyTree(),
            tree.Right.CopyTree(),
            tree.Value,
            tree.Parent.CopyTree(),
            tree.Orientation,
            tree.IsTerminal,
            tree.Type}
        return copiedTree
    }
}

go中是否有任何有用的构造可帮助深度复制构造?如果没有,我将如何自己进行深层复制?请注意,“ deepcopy ”软件包不再起作用,因为它使用了Go 1发行版中已弃用的一些功能

亚当·索弗

我离得很近。我应该将copyedTree分配给父属性。

func (tree *Tree) CopyTree() *Tree {
    if (tree == nil) {
        return nil
    } else {
        copiedTree := &Tree {
            tree.Left.CopyTree(),
            tree.Mid.CopyTree(),
            tree.Right.CopyTree(),
            tree.Value,
            nil,
            tree.Orientation,
            tree.IsTerminal,
            tree.Type,
        }

        if copiedTree.Left != nil {
            copiedTree.Left.Parent = copiedTree
        }
        if copiedTree.Right != nil {
            copiedTree.Right.Parent = copiedTree
        }
        if copiedTree.Mid != nil {
            copiedTree.Mid.Parent = copiedTree
        }
        return copiedTree
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用copyWithZone复制深层结构以复制结构?

来自分类Dev

如何执行Objective-C深层复制

来自分类Dev

您如何在RethinkDB中执行投影?

来自分类Dev

您如何在RethinkDB中执行投影?

来自分类Dev

如何在Swift中进行“深层复制”?

来自分类Dev

C结构的Python SWIG包装器中的深层复制

来自分类Dev

您如何在Swift中复制此Java接口?

来自分类Dev

如何使用cv :: dnn :: Net执行深层复制?

来自分类Dev

如何在Julia中初始化/构造深层嵌套结构?

来自分类Dev

如何在GO中执行HEAD请求?

来自分类Dev

如何在D中复制const片段的结构?

来自分类Dev

您如何在Cassandra中以特定用户身份登录,检查您的用户帐户并执行查询?

来自分类Dev

如何在C中的ADT上执行深度复制?

来自分类Dev

如何在C中的ADT上执行深度复制?

来自分类Dev

如何在结构中并行执行多个任务

来自分类Dev

如何在C中的结构上执行选择排序?

来自分类Dev

如何在jquery中执行表级层次结构?

来自分类Dev

如何从结构数组中复制结构?

来自分类Dev

如何在Go中设置动态结构字段?

来自分类Dev

如何在Go中循环遍历结构切片?

来自分类Dev

如何在Go中传递嵌套结构

来自分类Dev

如何在Go中解析以下JSON结构

来自分类Dev

您如何在groovysh中声明和使用Set数据结构?

来自分类Dev

如何在C#中执行Go函数

来自分类Dev

如何在Go中执行类似numpy的arange的操作?

来自分类Dev

如何在goeclipse IDE中执行go测试文件

来自分类Dev

如何在Entity Framework Migrations CodeFirst中执行GO语句

来自分类Dev

JavaFX:您如何执行包中的文件?

来自分类Dev

您如何在Ansible Tower中同时执行一项以上的工作?

Related 相关文章

热门标签

归档