二叉排序树的查找恰好走了一条从根节点到该节点的路径,和给定值比较的次数等于给定值在二叉排序树中的层数。
我用Go想演示一下这个过程,大家帮我看看有什么不妥?
package main
import(
"fmt"
)
type node struct{
data int
lChild *node
rChild *node
}
var lNode = node {
data: 1,
lChild: nil,
rChild: nil,
}
var rNode = node {
data: 3,
lChild: nil,
rChild: nil,
}
var root = node {
data: 2,
lChild: &lNode,
rChild: &rNode,
}
func bisortSearch(root *node, value int) *node {
if root == nil {
return nil
} else if root.data == value {
return root
} else if root.data > value {
bisortSearch(root.lChild, value)
} else {
bisortSearch(root.rChild, value)
}
return nil
}
func main(){
result := bisortSearch(&root, 2)
fmt.Println(*result)
}