将节点添加到树

我正在使用Go编程语言开发一个项目,该项目需要树结构以及向树中添加节点(其中的节点)的能力。每个节点都是如下所示的结构:


type Node struct {

    ip net.IP

    nodes []Node

    value int

}

每个节点可以具有的节点数是可变的(在1-4之间)。IP地址(稍后再搜索)可以包含在该节点上,但是对于该元素,大多数节点将为零。


在其他语言中,我可以轻松地做到这一点,但是我需要找到一种在Go中将这些节点添加到树中的有效方法。


白板的微信
浏览 165回答 1
1回答

Helenr

例如,使用nodes指向的指针的一部分Node,package mainimport (    "fmt"    "net")type Node struct {    value int    ip    net.IP    nodes []*Node}func main() {    node1 := Node{value: 1}    node2 := Node{value: 2}    node3 := Node{value: 3}    node4 := Node{value: 4}    node1.nodes = append(node1.nodes, &node2, &node3)    node2.nodes = append(node2.nodes, &node4)    node3.nodes = append(node3.nodes, &node4)    fmt.Printf("node1: %p %v\n", &node1, node1)    fmt.Printf("node2: %p %v\n", &node2, node2)    fmt.Printf("node3: %p %v\n", &node3, node3)    fmt.Printf("node4: %p %v\n", &node4, node4)}输出:node1: 0xc200069100 {1 [] [0xc200069180 0xc200069200]}node2: 0xc200069180 {2 [] [0xc200069240]}node3: 0xc200069200 {3 [] [0xc200069240]}node4: 0xc200069240 {4 [] []}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go