type BST struct {
Root *Node
}
type Node struct {
Key int
Parent *Node
Left *Node
Right *Node
}
func Init() *BST {
var root Node
var l Node
root = Node{
10,
nil,
&l,
nil,
}
l = Node{
5,
&root,
nil,
nil,
}
t := BST{&root}
return &t
}
func Init2() *BST {
var root *Node
var l *Node
root = &Node{
10,
nil,
l,
nil,
}
l = &Node{
5,
root,
nil,
nil,
}
t := BST{root}
return &t
}
我写了 2 种类型的 来返回一个具有 2 个节点的树。当我调用 返回的树时,输出为 5 10。当我调用 返回的树时,输出为 10。我猜GC在第二种情况下释放了其中一个节点。我不知道如何预测GC的行为。Init()InorderPrint()Init()InorderPrint()Init2()
胡说叔叔
相关分类