golang 写二叉查找树练习
发布时间:2020-12-16 18:50:59 所属栏目:大数据 来源:网络整理
导读:package mainimport ("fmt")type item struct {key int}type tree struct {lchild,rchild *treeitem itemcount int}func compare(x,y item) int {var ret intswitch {case x.key y.key:ret = 1case x.key == y.key:ret = 0case x.key y.key:ret = -1}return
package main import ( "fmt" ) type item struct { key int } type tree struct { lchild,rchild *tree item item count int } func compare(x,y item) int { var ret int switch { case x.key > y.key: ret = 1 case x.key == y.key: ret = 0 case x.key < y.key: ret = -1 } return ret } func create(T *tree,x item) *tree { if T == nil { T = new(tree) T.item = x T.count = 1 } else if compare(T.item,x) == 1 { T.lchild = create(T.lchild,x) } else if compare(T.item,x) == 0 { T.count++ } else { T.rchild = create(T.rchild,x) } return T } func search(T *tree,x item) *tree { if T == nil { return nil } else if compare(T.item,x) == 1 { return search(T.lchild,x) == -1 { return search(T.rchild,x) } return T } func main() { var root *tree t := create(root,item{89}) root = t iarr := []int{1,89,44,98,54,24,96,34,74,69,4,0} for _,i := range iarr { //fmt.Println(i) create(root,item{i}) } s := search(root,item{96}) fmt.Println(s) s = search(root,item{4}) fmt.Println(s) s = search(root,item{0}) fmt.Println(s) s = search(root,item{989}) fmt.Println(s) fmt.Println(root) } 结果:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |