資料結構 五 二叉樹(Binary Tree)

2021-07-23 19:36:53 字數 1990 閱讀 1831

二叉樹(binary tree)是n(n≥0)個結點的有限集合,該集合或者空集(空二叉樹),或由乙個結點和兩棵互不相交的、分別稱為根結點的左子樹和右子樹的二叉樹組成。

圖5.1

1、每個結點最多兩棵樹,所以二叉樹的結點的度最大為2;

2、左子樹和右子樹是有序的;

3、即使樹中某結點只有一棵樹,也要區分它是左子樹還是由子樹。

圖5.2

1、空二叉樹;

2、只有乙個根結點;

3、根結點只有左子樹;

4、根結點只有右子樹;

5、根結點既有左子樹又有右子樹。

1、斜樹
1、左斜樹:所有結點都只有左子樹的二叉樹。

2、右斜樹:所有結點都只有右子樹的二叉樹。

2、滿二叉樹
在一顆二叉樹中,如果所有的分支結點(內部結點)都存在左子樹和右子樹,並且所有的葉子都在同一層上,這樣的二叉樹稱為滿二叉樹

圖5.3

滿二叉樹的特點:

1、葉子結點只能出現在最下一層;

2、非葉子結點(終端結點)的度一定為2;

3、在同樣深度的二叉樹中,,滿二叉樹的結點個數最多,葉子樹最多。

3、完全二叉樹
對一顆具有 n 個結點的二叉樹按層序編號,如果編號為 i(1 ≤ i ≤ n ) 的結點與同樣深度的滿二叉樹中編號為 i 的結點在二叉樹中的位置完全相同,則這棵二叉樹稱為完全二叉樹。(可對比圖5.3與5.4)

圖5.4

完全二叉樹的特點:

1、葉子結點只能出現在最下兩層;

2、最下層的葉子結點一定集中在左部連續位置(或稱連續靠左分布);

3、倒數第二層若有葉子結點,一定都在右部連續分布;

4、如果結點度為1,則該結點在倒數第二層,其子節點一定是左孩子;

5、同樣結點樹的二叉樹,完全二叉樹的深度最下。

性質 1 :在二叉樹的第 i 層上至多有 2^(i-1) 個結點( i ≥ 0)。

性質 2 :深度為 k 的二叉樹至多有 2^k - 1 個結點(k ≥ 1)。

性質 3 :對任何一棵二叉樹 t ,如果其葉子結點樹為 n0,度 為 2 的結點樹為 n2,則 n0 = n2 + 1。

性質 4 :具有 n 個結點的完全二叉樹的深度為 [㏒₂n]+1([x]表示不大於x的最大整數)。

性質 5 :如果對一棵樹有 n 個結點的完全二叉樹(其深度為[㏒₂n]+1)的結點按層序編號(從第 1 層到第 [㏒₂n]+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。

資料結構 五 二叉樹 堆

實現乙個二叉查詢樹,並且支援插入 刪除 查詢操作 實現乙個二叉查詢樹,並且支援插入 刪除 查詢操作 typedef char datatype typedef struct bnode btnode,btptr createlbtree btptr bt 建立以bt為根節點指標的二叉鍊錶結構 i 節...

大話資料結構 (五)二叉樹的來由

在這次學習之前,在學校課程內也學過資料結構這門課,當時也只是臨時抱佛腳應付考試。提到樹,我的第一映像是,它得先建立乙個結點,結點的內容包括該結點的值和兩個結點指標。現在想起來還真有點此處省略一萬字 下面正式進入主題,既然線性結構裡面分為順序儲存結構和鏈式儲存結構,那麼樹的儲存結構會不會也是類似的呢。...

資料結構學習筆記五 二叉查詢樹

二叉查詢樹 binary search tree 又被稱為二叉搜尋樹。它是特殊的二叉樹 對於二叉樹,假設x為二叉樹中的任意乙個結點,x節點包含關鍵字key,節點x的key值記為key x 如果y是x的左子樹中的乙個結點,則key y key x 如果y是x的右子樹的乙個結點,則key y key x...