为了账号安全,请及时绑定邮箱和手机立即绑定

将节点添加到树

将节点添加到树

Go
白板的微信 2021-05-11 17:13:19
我正在使用Go编程语言开发一个项目,该项目需要树结构以及向树中添加节点(其中的节点)的能力。每个节点都是如下所示的结构:type Node struct {    ip net.IP    nodes []Node    value int}每个节点可以具有的节点数是可变的(在1-4之间)。IP地址(稍后再搜索)可以包含在该节点上,但是对于该元素,大多数节点将为零。在其他语言中,我可以轻松地做到这一点,但是我需要找到一种在Go中将这些节点添加到树中的有效方法。
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

例如,使用nodes指向的指针的一部分Node,


package main


import (

    "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 [] []}


查看完整回答
反对 回复 2021-05-24
  • 1 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信