1. 程式人生 > >有關二叉樹的計算題和知識

有關二叉樹的計算題和知識

1.二叉樹的深度和層數其實是一樣的。

2.任意一棵樹的總結點數等於總分支數+1

3.葉子結點也稱葉子,度為0的結點。

4.一個深度為n的滿二叉樹的總結點數為  (2^(n-1))  -1(其實得出這個結論畫個圖就知道了,不難)

5.深度為h的完全二叉樹至少有2^(h-1)個結點,最多有(2^h)-1個結點。

相關題目:

1.      一棵二叉樹第六層(根結點為第一層)的結點數最多為?

             其實這道題很簡單,就是2^5=32

2.     某二叉樹中度為2的結點有18個,則該二叉樹中有多少個葉子結點?

         根據總結點數=總分支數+1,設葉子有n個,則有

               18 + n = 18*2 + 1

                       n = 19

3.設一棵完全二叉樹共有199個結點,那麼該二叉樹共有個分支結點?

思路就是先求出這個完全二叉樹的葉子數,然後用總結點數減去葉子數就是分支結點的數目了。

因為有                               (2^7) - 1<199<=(2^8)-1 

所以得深度為8,前7層為滿二叉樹,所以前7層的總結點數為(2^7) - 1 = 127  ,第7層的結點數為 2^6 = 64

則最後一層的葉子為  199 - 127 = 72  ,所以第7層的葉子數為  64 - 72/2 = 28

所以總葉子數為   72+28 = 100

分支數為 199 -100 = 99

4.在深度為7的二叉樹中,最多有多少個葉結點?(注意這裡問的是葉結點,而不是結點數,如果是結點數的話答案是(2^6)-1  )

這種題目和例子1差不多,為    2^6

5.設一棵完全二叉樹共有127個結點,那麼該二叉樹是滿二叉樹嗎?

因為         一個深度為n的滿二叉樹的總結點數為  2^(n-1)-1

則設       2^(n-1)-1 = 127 

                   n = 8 ,所以這也是滿二叉樹。

6.具有53個結點的完全二叉樹的深度為?

因為一個二叉樹的結點數必然不會超過深度一樣的滿二叉樹的結點數,所以有             (2^5) - 1<53<=(2^6)-1              

所以答案為6

7.設一棵完全二叉樹共有700個結點,則在該二叉樹中有多少 個葉子結點?

從第五題延伸出來的題目,由例6的思路得,           (2^9)-1  <700<=(2^10) - 1

所以得這棵二叉樹前面9層是滿二叉樹,則得前9層的總結點數為  (2^9)-1  = 512 -1 =511

則剩下來的結點數就是最後一層的結點數,為   700 - 511 = 189 ,把他湊成偶數為190,則也就是說,

最後一層是從第九層中  190/2= 95個結點延伸出來的,所以第九層失去了95個葉子,又因為第九層的

結點數為  2^8 = 256,則第九層的葉子數為  256 - 95,則所有的結點數為256-95 +189 =350

瞭解了第6題後,下面給出一道判斷題給大家,讓讀者來做判斷。是答案錯還是那位樓主錯?

例題待續