Python寫資料結構 二叉樹的性質

2021-08-15 07:47:02 字數 823 閱讀 9478

二叉樹性質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 ...