二叉樹的定義與性質
阿新 • • 發佈:2019-01-29
二叉樹中,每個結點最多隻能有兩棵子樹,並且有左右之分。 二叉樹並非是樹的特殊情形,它們是兩種不同的資料結構。 (2)二叉樹與度數為2的有序樹不同 在有序樹中,雖然一個結點的孩子之間是有左右次序的,但是若該結點只有一個孩子,就無須區分其左右次序。而在二叉樹中,即使是一個孩子也有左右之分。 【例】下圖中(a)和(b)是兩棵不同的二叉樹,它們同右圖中的普通樹(作為有序樹或無序樹)很相似,但卻不等同於這棵普通樹。若將這三棵樹均看做普通樹,則它們就是相同的了。 二叉樹並非是樹的特殊情形,它們是兩種不同的資料結構。 |
證明:由性質 (1) 可知各層結點最多數目之和為: 2 0 +2 1 +2 2 +.....+2 k-1 ;由二進位制換算關係可知: 2 0 +2 1 +2 2 +.....+2 k-1 = 2 k -1 ;因此二叉樹樹中結點的最大數目為 2 k -1 。性質 2 證明完畢。 性質3 在任意-棵二叉樹中,若葉子結點(即度為0的結點)的個數為n0,度為1的結點數為n1,度為2的結點數為n2,則no=n2+1。 證明:因為二叉樹中所有結點的度數均不大於2,所以結點總數(記為n)應等於0度結點數、1度結點(記為n1)和2度結點數之和: n=no+n1+n2 (6.1) 由於有n個結點的二叉樹總邊數為n-1條,於是得: n-1=0*n0+1*n1+2*n2 (6.2) 將(6.1)式代入(6.2)式得:n0=n2+1。性質3證明完畢 滿二叉樹和完全二叉樹是二叉樹的兩種特殊情形。 1、滿二叉樹(FullBinaryTree) 一棵深度為k且有2k-1個結點的二又樹稱為滿二叉樹。 滿二叉樹的特點: (1) 每一層上的結點數都達到最大值。即對給定的高度,它是具有最多結點數的二叉樹。 (2) 滿二叉樹中不存在度數為1的結點,每個分支結點均有兩棵高度相同的子樹,且樹葉都在最下一層上。 【例】圖6.4(a)是一個深度為3的滿二叉樹。 2、完全二叉樹(Complete BinaryTree) 若一棵二叉樹至多隻有最下面的兩層上結點的度數可以小於2,並且最下一層上的結點都集中在該層最左邊的若干位置上,則此二叉樹稱為完全二叉樹。 特點: (1) 滿二叉樹是完全二叉樹,完全二叉樹不一定是滿二叉樹。 (2) 在滿二叉樹的最下一層上,從最右邊開始連續刪去若干結點後得到的二叉樹仍然是一棵完全二叉樹。 (3) 在完全二叉樹中,若某個結點沒有左孩子,則它一定沒有右孩子,即該結點必是葉結點。 【例】如圖6.4(c)中,結點F沒有左孩子而有右孩子L,故它不是一棵完全二叉樹。 【例】圖6.4(b)是一棵完全二叉樹。 性質 4 具有 n 個結點的完全二叉樹樹深為 +1 (其中 表示不大於 x 的最大整數)。 證明:假設某完全二叉樹的結點總數是 n ,它的值應該大於樹深為 K-1 的滿二叉樹結點數 2 k-1 -1 ,小於等於樹深為 K1 的滿二叉樹結點數 2 k -1 。 2 k-1 -1 < n <= 2 k -1 由於該不等式各項均為整數,當對兩端兩項各加 1 時不等式發生變化得: 2 k-1 <= n < 2 k 再對其取對數得: k-1<= log 2 n < k 如果對 log 2 n 取整顯然等於 k-1 :, 所以得: 性質 4 證明完畢。 性質 5 若對有 n 個結點的完全二叉樹進行順序編號 (1 ≤ i ≤ n) ,那麼: 對於編號為 i(i ≥ 1) 結點 : 當 i=1 時,該結點為根,它無雙親結點; 當 i>1 時,該結點的雙親結點編號為 ; 若 2i ≤ n ,它有編號為 2i 的左孩子,否則沒有左孩子; 若 2i+1 ≤ n ,則它有編號為 2i+1 的右孩子,否則沒有右孩子。 對照圖 6.4(a) 或圖 6.4(b) 讀者可看到由性質 ( 5 ) 所描述的結點與編號的對應關係 。 |