二叉樹的操作原理:取第乙個節點為根節點,比根節點小的數放在根節點的左子樹(左節點),比根節點大的數放在根節點的右子數(右節點),取得的時候按照中序遍歷的方式(左-中-右)。
實現**如下:
//節點結構體
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...