樹、二叉樹及森林的部分性質及證明


樹的性質:

1、高度為 m 的樹中第 i 層上至多有 mi-1 個結點(i≥1)。

2、高度為 h 的 m 叉樹至多有(mh-1)/(m-1)個結點。

     證明:等比數列求和 S=1+m+m2+......mh-2+mh-1=(mh-1)/(m-1)   , 注意等比數列求和的n指的是相數而不是最高項的次數。

3、具有n個結點的m叉樹的最小高度為⌈logm(n(m-1)+1)⌉。

     證明:思路是只有當這n個結點建立的m叉樹為滿的時候,樹的高度才會最低。   

                       層次           度為3時的結點數          度為m時的結點數

                         1                   3^0                                  m^0

                         2                   3^1                                  m^1

                         3                   3^2                                  m^2

                         ………………………………………………

                          i                    3^(i-1)                               m^(i-1)

                         ………………………………………………

                          h                  3^(h-1)                               m^(h-1)

         所以得到n=m^0+m^1+…+m^(h-1)=(m^h-1)/(m-1),解得h>=logm(n(m-1)+1),即logm(n(m-1)+1)向上取整。

4、樹的路徑長度是指樹根到每個結點的路徑長的總和,根到每個結點的路徑長度的最大值應是樹的高度減1。(注意與哈夫曼樹的帶權路徑長度區別)

5、常見的樹結點與度之間的關系:

     a.   總結點數=n0+n1+n2+....+nm

    b.   總分支數=1n1+2n2+....+mnm(度為m的結點引出m條分支)

    c. 總結點數=總分支數+1

 

 二叉樹的性質:

1、在含有n個結點的二叉鏈表中,含有n+1個空鏈域(重要結論)。

     證明:首先要明白鏈域是什么意思:

    a.  鏈就代表指針,就是下個元素的地址。

    b.  鏈表中一個結點可以分為兩個部分,也可以說是區域,一個區域存放指針,被稱為指針域,另一個區域存放數據,叫做數據域。鏈表中的指針域中的內容就是指針,單鏈表中一個指針域存放一個指針,雙鏈表中兩個指針域各存放一個指針。

     

            

2、若 i≤⌊n/2⌋ ,則結點 i 為分支結點,否則為葉子結點。

3、若 n 為奇數,則每個分支結點都有左孩子和右孩子;若 n 為偶數,則編號最大的分支結點(編號為n/2)只有左孩子,沒有右孩子,其余分支結點左、右孩子都有(默認是指完全二叉樹,包括滿二叉樹)。

  證明:性質2和3本質上是同一件事,即:

     如何證明對於編號為 i 的結點,若有雙親,則其雙親為 ⌊i/2⌋,若有左孩子,則左孩子為2i;若有右孩子,則右孩子為2i+1。

     

                             

   推廣到滿 m 叉樹:

    規定:高度h,滿m叉樹,根結點在第1層,順序編號。

       

 4、具有n個(n>0)結點的完全二叉樹的高度為 ⌈log2(n+1)⌉ 或 ⌊log2n⌋ +1 。

    證明:

              

 5、分支結點:就是總結點減去葉子結點。

 6、二叉樹的寬度:具有最多結點數的層中包含的結點數。

森林的性質:

1、對森林所對應的二叉樹進行中序遍歷,相當於對森林中的每一棵樹從左到右進行后序遍歷

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM