有一天,我做了一个快速的工具来弄清楚问题究竟是什么问题,但是有一个固定的范围,这只是通过使用一个愚蠢的for循环,但我想使它适用于使用可定义的范围
数据结构看起来像
如果每个节点都可以链接到任何其他数量的节点,并且所有节点都可以链接回自身,那么您将遵循正确的路径(这往往会破坏我的实现)。
它只是定义为
type Node struct {
Name string
ID int
}
您可以使用一种方法获取与其链接的节点列表,该方法返回一个节点片段,该节点从大约5,000个条目的数据库中获取信息。
最初我尝试了一些递归的东西,最后我的头部受伤了,而且代码无效。我似乎无法理解这一点。
提前致谢,如果此类数据有特定名称,我很想知道它是什么!
答案 0 :(得分:0)
我的最终代码看起来像这样
func rec(x Node, depth int) Node {
s := make([]Node, 0)
if depth == 0 {
s = append(s, x)
} else {
for _, y := range x.Get() {
s = append(s, rec(y, depth-1)...)
}
}
return s
}
它运作得非常好。非常感谢siritinga指出我正确的方向。