gpt4 book ai didi

go - 在 Go 中深度复制图结构

转载 作者:数据小太阳 更新时间:2023-10-29 03:03:00 25 4
gpt4 key购买 nike

我有一些非常经典的节点:

type MyNode struct {
value string
edges []*MyNode
}

我使用这些节点来构建图表。当我构建这个图时,我使用一个函数在节点之间建立双向连接:

func (node *MyNode) ConnectTo(otherNode *MyNode) *MyNode {
node.edges = append(node.edges, othernode)
otherNode.edges = append(otherNode.edges, node)
return otherNode
}

我想创建图的同构,这样我就可以对其执行操作并将其作为自己的节点集返回。简单的复制构造函数或 copy() 甚至普通的深复制方法都不会保留连接结构。

我是否必须经历在新结构和旧结构之间绘制 map 的痛苦?或者是否有某种漂亮的 Go 方法可以做到这一点?

最佳答案

没有。在 Go 中创建图的同构没有神奇的方法。

Go 内置函数和语言特性遵循的原则之一是它们不会隐藏时间和空间方面的复杂性。创建同构超出了该范围。

使用 map 的想法是正确的方法,我不会称之为痛苦。几行代码就可以搞定。

关于go - 在 Go 中深度复制图结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50892768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com