樹——樹、二叉樹、哈夫曼樹的性質
阿新 • • 發佈:2022-01-03
>樹
樹的基本術語
- 祖先:根A到結點D的唯一路徑上的任意結點都可稱為結點D的祖先。
- 雙親:相對於孩子在其上一級。
- 分支結點:度大於0的結點。
- 葉子結點:度等於0的結點。
- 兄弟:有相同雙親的結點。
定義
-
結點的層數從樹根開始定義,根結點為第1層,它的子結點為第2層。
-
結點的深度是從根結點開始自頂向下逐層累加。
-
結點的高度是從葉結點開始自底向上逐層累加。
樹的高度等於結點的最大層數
樹的重要性質
-
樹中的**結點數 **等於 所有結點的度數之和 + 1
-
高度為k的m叉樹最多有(m k - 1) / (m - 1)個結點
>二叉樹
-
滿二叉樹
-
一顆高度為h,且含有2h
-
對滿二叉樹按層序編號:約定編號從根結點起,自上而下,自左而右。
- 這樣,每個結點對應一個編號,對於編號為i的結點,若有雙親,則其雙親為i/2,若有左孩子,則左孩子為2i;若有右孩子,則右孩子為2i+1。
-
-
完全二叉樹
-
一顆高度為h,且含有n個結點,每個結點編號與滿二叉樹中的編號一一對應稱為完全二叉樹。
-
葉子結點只可能在層次最大的兩層上出現。對於最大層次中的葉子結點,都依次排列在該層最左邊的位置上。
-
若有度為1的結點,則只可能有一個,且該結點只有 左孩子 而無右孩子。
-
按層序編號後,一旦出現結點i為葉子結點或只有左孩子,則編號大於i的結點均為葉子結點。
-
若n為奇數,則每個分支結點都有左孩子和右孩子;
-
若n為偶數,則編號最大的分支結點只有 左孩子 ,沒有右孩子。
-
其餘分支結點左右孩子都有。
-
-
-
二叉樹的儲存結構
-
順序儲存結構
-
鏈式儲存結構
-
-
二叉樹的遍歷
-
先序遍歷(MLR)
-
中序遍歷(LMR)
-
後序遍歷(LRM)
-
-
樹轉換成二叉樹
口訣:左孩子,右兄弟。
>哈夫曼樹
-
WPL(帶權路徑長度)
樹中所有葉子結點的帶權路徑長度之和。
(路徑長度根結點從0開始向下累加)
-
哈夫曼樹的構造
WPL=5 x 2 + 2 x 3 + 4 x 3 + 7 x 2 + 9 x 2 = 60