資料結構之二叉樹的定義和性質

顧小豆發表於2018-02-17

通過上一節講解,我們知道通用樹結構是採用雙親孩子表示法模型建立的。每個結點都有一個指向其雙親的指標,每個結點都有

若干個指向其孩子的指標。如下圖:


整體實現起來比較複雜,今天我們來講一下另一種樹結構模型:孩子兄弟表示法模型。每個結點都有一個指向其第一個孩子的指

針,每個結點都有一個指向其第一個右兄弟的指標。如下圖:


孩子兄弟表示法:每個結點包含一個資料指標和兩個結點指標。

1.    資料指標:指向儲存於樹中的資料;

2.     孩子結點指標:指向第一個孩子;

3.     兄弟結點指標:指向第一個右兄弟。

如下圖:

孩子兄弟表示法的特點:

1.能夠表示任意的樹形結構;

2. 每個結點中有且僅有三個指標域,資料指標,孩子結點指標,兄弟結點指標;

3. 每個結點的結構簡單,只有孩子結點指標和兄弟結點指標構成了“樹杈”。

孩子兄弟表示法的本質是將通用樹轉化為二叉樹,二叉樹是最多隻有兩個孩子的樹。

二叉樹的定義:二叉樹是由 n ( n ≥0 ) 個結點組成的有限集合,該集合或者為空,或者是由一個根結點加上兩棵分別稱為左子樹

右子樹的、互不相交的二叉樹組成。

二叉樹有如下不同的5中狀態:空二叉樹、僅有根結點的二叉樹、右子樹為空的二叉樹、左子樹為空的二叉樹以及左、右子樹均

非空的二叉樹。如下圖:

當然二叉樹還有比較特殊的二叉樹,比如滿二叉樹和完全二叉樹。

滿二叉樹 (FullBinary Tree):如果二叉樹中所有分支結點的度數都為2,且葉子結點都在同一層次上(即一顆深度為k且有2k-1個

結點的二叉樹),則稱這類二叉樹為滿二叉樹。滿二叉樹的特點就是每一層的結點數都是最大節點數。

完全二叉樹(Complete Binary Tree):如果一棵具有n個結點的高度為k的二叉樹,它的每一個結點都與高度為k的滿二叉樹中編

號為1—n的結點一一對應,則稱這棵二叉樹為完全二叉樹。(從上到下從左到右編號)。


完全二叉樹的葉結點僅出現在最下面兩層:

1.最下層的葉結點一定出現在左邊;

2.倒數第二層的葉結點一定出現在右邊。

完全二叉樹中度為1的結點只有左孩子,同樣結點數的二叉樹,完全二叉樹的高度最小。

上面我們總結了二叉樹的定義,接下來我們說一說二叉樹的性質。

二叉樹的深層性質:

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

• 第一層最多有 21-1=1個結點。

• 第二層最多有 22-1=2個結點。

• 第三層最多有 23-1=4個結點。

……

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

• 如果有一層,最多有 1=21-1=1個結點。

• 如果有兩層,最多有 1+2=22-1=3 個結點。

• 如果有三層,最多有 1+2+4=23-1=7 個結點。

……

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

證明:假設二叉樹中度1的結點有 n1個且總結點為n個,則:n=n0+n1+n2

假設二叉樹中連線父結點與子結點間的邊為 e條,則:e=n1+2n2 = n – 1。

所以:n0=n2+1。

性質4:具有 n個結點的完全二叉樹的高度為

相關文章