1. 程式人生 > >二叉樹的五大性質及證明

二叉樹的五大性質及證明

二叉樹(Binary Tree)

定義:一棵二叉樹是結點的一個有限集合,該集合或者為空,或者是由一個根結點加上兩棵分別稱為左子樹和右子樹的、互不相交的二叉樹組成。

特點:每個結點至多隻有兩棵子樹(二叉樹中不存在度大於2的結點)

五種形態

1. 性質1

性質1  在二叉樹的第 i 層至多有 2^(i -1)個結點。(i>=1)

[用數學歸納法證明]

       證明:當i=1時,只有根結點,2^(i -1)=2^0=1。

       1) 設:對所有j,i>j>=1,命題成立,即第j層上至多有2^(j-1)個結點。

       2) 由歸納假設第i-1層上至多有2^(i-2)個結點。

       3) 由於二叉樹的每個結點的度至多為2,故在第i層上的最大結點數為第i-1層上的最大結點數的2倍,即2* 2^(i-2)= 2^(i-1) 

證畢。

2. 性質2

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

       證明:由性質1可見,深度為k的二叉樹的最大結點數為 

3. 性質3

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

       證明:若度為1的結點有 n1個,總結點個數為n,總邊數為 e,則根據二叉樹的定義,

            n = n0 + n1 + n2    

            e = 2n2 + n1 = n - 1 (除了根節點,每個節點對應一條邊 )

           因此,有  2n2+ n1 =n0 + n1 + n2- 1

                          n2= n0 - 1  =>   n0= n2+ 1

          空鏈域:2n0+ n1 = n0 + n2 +1+ n1 = n+1

4. 性質4

性質4  具有 n (n>=0) 個結點的完全二叉樹的深度為+1 

       證明:設完全二叉樹的深度為 h,則根據性質2 和完全二叉樹的定義有

            2^(h-1)- 1 < n <= 2^h - 1或 2^(h-1)<= n < 2^h

               取對數 h-1 < log2n  <= h,又h是整數,

               因此有 h = +1 

5. 性質5

性質5  如將一棵有n個結點的完全二叉樹自頂向下,同層自左向右連續為結點編號0,1, …, n-1,則有: 

       1)若i = 0, 則 i 無雙親,   若i > 0, 則 i 的雙親為」(i -1)/2」

       2)若2*i+1 < n, 則i 的左子女為 2*i+1,若2*i+2 < n, 則 i 的右子女為2*i+2

       3)若結點編號i為偶數,且i != 0,則左兄弟結點i-1.

       4)若結點編號i為奇數,且i != n-1,則右兄弟結點為i+1.

       5)結點i 所在層次為」log2(i+1) 」

參考資料:

1. Boss的PPT