二叉樹的性質:
- 非空二叉樹上葉子結點數等於雙分支結點數加1【n0=n2+1】
- 非空二叉樹的第i層上最多有2i-1個結點
- 高度h的二叉樹最多有2h-1個結點
- 編號為i的結點,左孩子編號2i,右孩子編號2i+1
- n個結點的完全二叉樹高度為log2(n+1)或[log2n]+1
- 總結點數=總分支數(所有結點度之和)+1
1、一顆有n個結點的樹的所有結點的度數之和為多少?
所有結點度數之和=n-1
2、已知一顆完全二叉樹的第6層(設根為第1層)有8個葉子結點,則該完全二叉樹的結點個數最多是多少?最少是多少?
已知:完全二叉樹葉子結點只可能在最下兩層
結點最多情況:1~6層構成滿二叉樹,則其結點總數(該滿二叉樹)為26-1=63個
第6層有26-1=32個
其中,有8個葉子結點,則32-8=24個非葉子結點
非葉子結點有2個孩子(考慮最多)均在第7層為葉子結點
第7層有2×24=48個葉子結點
(總結點個數)max=48+63=111個
結點最少情況:第6層為倒數第1層
1~5層構成滿二叉樹,結點總數25-1=31個
其中,第6層為8個葉子結點
(結點總個數)min=31+8=39個
3、一顆有124個葉子結點的完全二叉樹最多有多少個結點?
27-1=64,28-1=128,結論:完全二叉樹不是滿二叉樹,因此完全二叉樹有8層,除去底層,此二叉樹有27-1=127個結點
設n為最底層結點個數。則:
n為偶數,n+64-n/2=124,n=120,則此樹共有127+120=247個結點
n為奇數,n+64-(n+1)/2=124,n=121,則此樹共有127+121=248個結點
4、具有1000個結點的完全二叉樹的次底層的葉子結點個數為多少?
由log2(n+1)可以算出:1000個結點的完全二叉樹有10層
該樹上面9層是滿的,有29-1=511個結點
由n0=n2+1,n0+n2為奇數,當n為偶數時,n1=1
所以,n=n0+n1+n2=2n0-1+n1=1000 得出n0=500
其中,有1000-511=489分布在第10層,11個分布在第9層
所以,次底層葉子結點個數為11
5、若在一顆完全二叉樹中對所有結點按層次自上向下,同一層次自左向右進行編號,根結點編號為0,現有兩個不同的結點,它們的編號為q和p,那么判斷它們在同一層的條件應該是?
按照公式,編號為i(從0開始)的結點所在層號為log2(i+1)
當兩個結點位於同一層,就有[log2(p+1)]+1=[log2(q+1)]+1,即[log2(p+1)]=[log2(q+1)]
若編號從1開始,則[log2(p)]=[log2(q)]
6、含有60個葉子結點的二叉樹的最小高度為多少?
n0=60 ,n2=n0-1=59
n=n0+n1+n2=119+n1
當n1=0為完全二叉樹,高度最小
h=log2(n+1)=log2120=7
所以最小高度為7
7、已知一顆滿二叉樹結點個數為20~40,此二叉樹葉子結點有多少個?
已知:一顆滿二叉樹結點個數為2h-1
即20≤2h-1≤40
h=5
則葉子結點在最底層為:25-1=16個