二叉樹性質1:
在二叉樹的第i
層上至多有2^(i-1)
個結點(i>=1)
二叉樹性質2:
深度為k
的二叉樹至多有2^k - 1
個結點(k>=1)
二叉樹性質3:
對任何一棵二叉樹t
,如果其終端結點數為n0
,度為2的結點數為n2
,則n0 = n2 + 1
二叉樹性質4:
具有n
個結點的完全二叉樹的深度為⌊log2n⌋ + 1
(⌊log2n⌋
表示向下取整)
二叉樹性質5:
如果對一棵有n個結點的完全二叉樹(其深度為⌊log2n⌋ + 1
)的結點按層序編號(從第一層到第⌊log2n⌋ + 1
層,每層從左到右),對任一結點i(1<=i<=n)
有:
1:如果i=1
,則結點i
是二叉樹的根,無雙親;如果i>1
,則其雙親是結點⌊i/2⌋
.
2:如果2i>n
,則結點i
無左孩子(結點i
為葉子結點);否則其左孩子是結點2i.
3:如果2i+1>n
,則結點i
無右孩子;否則其右孩子是結點2i+1
.
Python 二叉樹資料結構
二叉樹是每個結點最多有兩個子樹的樹結構。通常子樹被稱作 左子樹 left subtree 和 右子樹 right subtree 將二叉樹的節點定義為乙個物件,節點之間通過類似鍊錶的鏈結方式來連線。二叉樹的遍歷方式 前序遍歷 eacbdgf 中序遍歷 abcdegf 後序遍歷 bdcafge 層次遍...
重建二叉樹python 資料結構 重建二叉樹
說明 給定輸入一棵二叉樹的前序遍歷和中序遍歷陣列。利用此重新建立二叉樹。注意輸入不包含相同的鍵值,否則情況複雜得多。思路 由定義,前序遍歷的第乙個記錄總是根節點,而這個鍵值在中序遍歷時,將中序遍歷的陣列分成兩部分,分別對應這個根節點的左右兩子樹。同時,前序遍歷陣列跟在節點後的陣列也分成兩部分,其中前...
資料結構 二叉樹 反轉二叉樹
include using namespace std define maxsize 1000 struct binary tree node class queue queue queue void queue push binary tree node btn binary tree node ...