golang实现二叉搜索树

bigtom ·
不可以这样用的 数组这个东西在扩容的时候,底部的指针会变,很容易发生不可预估的意外 所以不能用append来做处理,这是我修改后的 ```go //transfer a bt to a array asc sorted func (bt *BinaryNode) ToAscArray(rs *[]interface{},flag *int){ if bt.Left!=nil { bt.Left.ToAscArray(rs,flag) } (*rs)[*flag] = bt.Data *flag++ if bt.Right!=nil{ bt.Right.ToAscArray(rs,flag) } } ```
#1
更多评论
像这样使用 ```go func TestBinaryNode_ToAscArray(t *testing.T) { Init() var sum = 0 var rs = make([]interface{},node.GetNodesNum(&sum)) var tmp =0 node.ToAscArray(&rs,&tmp) t.Log(rs) t.Log(tmp) } ```
#2
封装一下 ```go //transfer a bt to an array desc escaping args func (bt *BinaryNode) ToDescArrayEscapingArgs() []interface{} { var sum int var rs []interface{} var flag int bt.GetNodesNum(&sum) rs = make([]interface{}, sum) bt.ToDescArray(&rs, &flag) return rs } ```
#3