Go語言實現二叉樹(BinaryTree)

2021-08-30 09:02:23 字數 1054 閱讀 1608

二叉樹的操作原理:取第乙個節點為根節點,比根節點小的數放在根節點的左子樹(左節點),比根節點大的數放在根節點的右子數(右節點),取得的時候按照中序遍歷的方式(左-中-右)。

實現**如下:

//節點結構體

type node struct

//二叉樹結構體

type binarytree struct

//查詢時記錄下標

var i int=0

//新增節點

func

(node *node)

addnode

(newnode *node)

else

}else

else}}

func

(bt *binarytree)

add(data int

)else

bt.count++

}//遍歷二叉樹(中序:左-中-右),返回切片型別

func

(node *node)

toarraynode

(datas [

]int

) datas[i]

=node.data

i++if node.rightnode!=

nil}

func

(bt *binarytree)

toarray()

int datas:=

make([

]int

,bt.count)

bt.root.

toarraynode

(datas)

return datas

}//返回該樹的長度

func

(bt *binarytree)

size()

int

測試**如下:
func

main()

測試結果如下:

C語言實現二叉樹

1.c語言實現二叉樹中節點間最大距離 includetypedef struct treenode treenode 我們可以將所有的結點的左右子樹的高度和計算一下,然後取出最大值,就是最遠的距離。int getmaxdistance treenode root,int maxdistance in...

二叉樹(C語言實現)

以下為用c語言實現的二叉排序樹,包含了樹的建立,銷毀,新增,刪除,修改,前 中 後 層序遍歷,深度,密度。include include include define type int typedef struct node node 建立結點 node creat node type data 新...

Go語言實現 劍指offer 重建二叉樹

該題目 於牛客網 劍指offer 專題。輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。go語言實現 type treenode struct func reconstructbi...