1. 程式人生 > >二叉樹的5個重要性質

二叉樹的5個重要性質

1.在二叉樹的第i層上最多有2 i-1 個節點 。(i>=1)

 用歸納法證明:

歸納基:i = 1 層時,只有一個根結點,
                    2i-1 = 20 = 1;

歸納假設:假設i=k時,命題成立;

歸納證明:二叉樹上每個結點至多有兩棵子樹,則
第 k+1 層的結點數 最多為2k-1 x 2 = 2k+1-1 。

2.二叉樹中如果深度為k,那麼最多有2k-1個節點。(k>=1)

 證明:

基於性質1,深度為 k 的二叉樹上的結點數至多為
       2^0+2^1+ .....+2^k -1 = 2^k -1 

3.n0=n2+1  n0

表示度數為0的節點 n2表示度數為2的節點

    推導過程 根據兩個公式

 1. n=n0+n1+n   n表示二叉樹中的節點總個數,n1表示度數為1的節點個數

    2.n-1=2n2+n1      通過觀察二叉樹我們可知,除了根節點之外,其餘的任何節點都有一個入口分支,其他節點都有一個入口分支,那麼節點的總分支數等於節點個數減一,度數為2的節點有2個出口分支,度數為一的有1個出口分支,度數為0的節點沒有出口分支 所以總的分支個數為 2n2+n1

4.在完全二叉樹中,具有n個節點的完全二叉樹的深度為[log2n]+1,其中[log2n]+1是向下取整。


     推導過程根據性質 2: 假設深度為k 的滿二叉樹的節點個數一定為2k

-1,那麼n=2k-1推得滿二叉樹的度數為k=log2(n+1);

 完全二叉樹是具有n個節點的二叉樹,若按層序編號那麼其編號與同樣深度的滿二叉樹的節點編號在二叉樹的位置相同,那麼他就是完全二叉樹,也就是說他的葉子幾點只可能出現在最下邊的兩層,他的深度等於滿二叉的深度,但他的節點一定少於等於滿二叉樹的節點個數,但一定多與2k-1-1,2k-1-1第度數為k-1層的滿二叉樹的節點個數,那麼n就滿足2k-1-1<n<=2k-1,由於n為整數那麼n<=2k-1可以推出n<=2,n>2k-1-1可以推出 n>=2k-1,所以2k-1<n<=2k  

,即可得k-1<=log2n<k 而k作為整數因此k=[log2n]+1

設 完全二叉樹的深度為 k 

則根據第二條性質得 2k-1 -1<n ≤ 2k -1,即2k-1≤  n < 2k      即   k-1 ≤  log2 n < k 

因為 k 只能是整數,因此, k =[log2n] + 1

5.若對含 n 個結點的完全二叉樹從上到下且從左至右進行 1 至 n 的編號,則對完全二叉樹中任意一個編號為 i 的結點:

(1) 若 i=1,則該結點是二叉樹的根,無雙親, 否則,編號為 [i/2] 的結點為其雙親結點;  

(2) 若 2i>n,則該結點無左孩子,  否則,編號為 2i 的結點為其左孩子結點;

(3) 若 2i+1>n,則該結點無右孩子結點,  否則,編號為2i+1 的結點為其右孩子結點。