1. 程式人生 > >資料結構樹與二叉樹例題

資料結構樹與二叉樹例題

樹與二叉樹例題

例1

高度為K(K>=2)的完全二叉樹至少有()個葉子結點。

解:
根據二叉樹性質 二叉樹第i(i>=1)層上至多有2^(i-1)個結點
第K-1層有 2^(K-1-1)=2^(K-2) 個結點
求二叉樹至少有多少個葉子結點, 第K層至少有一個結點。故高度為K的二叉樹至少有2^(K-2)個葉子結點.

例2

在二叉樹中,指標p非空,它所指結點為葉子結點的條件是 (p->lchild=NULL) && (p->rchild=NULL)

例3

已知一棵度為3的樹有2個度為1的結點,3個度為2的結點,4個度為3的結點,則該樹中有()個葉結點

公式: 樹中的結點數=總分叉數+1
這裡的分叉數就是所有結點的度之和
樹中的結點數p = 2+3+4+x (x為葉子結點數)
樹中的結點數p = (2*1+3*2+4*3+x*0 )+1 = 2+6+12+1 = 21
x+9 = 21
x = 12

例4

已知完全二叉樹的第7層有20個結點,則整個完全二叉樹的葉子結點數是()

根據二叉樹性質 第i層有2^(i-1)個結點 2^(7-1) = 64 個結點, 故第7層為最底層
第6層 2^(6-1) = 32個結點 由此可以得出第6層32+第7層20-第7層對應的第6層的結點數(20/2)= 20+32-(20/2)=42個
畫圖更明顯

例5

有K個葉子結點的哈夫曼樹,其結點的總數為()

根據哈夫曼樹的構成, 初始K個葉子結點需要合併k-1次 一共產品k-1個結點. 如 初始4個結點需要3次合併 每次產生一個新的結點
新產生的k-1個結點+初始K個結點=K+K+1=2K+1