查找未知(树状)数据结构中一个节点范围内的所有节点

时间:2014-10-12 07:20:03

标签: data-structures go

有一天,我做了一个快速的工具来弄清楚问题究竟是什么问题,但是有一个固定的范围,这只是通过使用一个愚蠢的for循环,但我想使它适用于使用可定义的范围

数据结构看起来像

this

如果每个节点都可以链接到任何其他数量的节点,并且所有节点都可以链接回自身,那么您将遵循正确的路径(这往往会破坏我的实现)。

它只是定义为

type Node struct { Name string ID int }

您可以使用一种方法获取与其链接的节点列表,该方法返回一个节点片段,该节点从大约5,000个条目的数据库中获取信息。

最初我尝试了一些递归的东西,最后我的头部受伤了,而且代码无效。我似乎无法理解这一点。

提前致谢,如果此类数据有特定名称,我很想知道它是什么!

1 个答案:

答案 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指出我正确的方向。