close

設AVL樹高為h,最少總節點數量為N
當h=1的時候,N一定是1(AVL樹不為空樹,只有根節點)
設 1. 左子樹的高hL=h-1, 右子樹的高hR=hL-1==h-2
設 2. 最小總節點數量N為左子樹最小節點數量nL+右子樹最小節點數量nR+根節點,亦即N=nL+nR+1

如果N=F(h+2)-1為真,當h=1時可得
F(1+2)-1=1  //樹高為一的狀況下只有根節點
可得F(3)=2
如果h=2,根據設定 1. 可知hL=1,hR=0
僅考慮最小節點的狀況下,左子樹高度為一,節點數量也應該只有一,因此根據設 2. 可知,N=2
將h與N帶入N=F(h+2)-1後可得到F(4)=3
接著考慮空樹狀況,h=0, N當然也等於零,帶入N=F(h+2)-1可得
F(0+2)-1=0,移項後得F(2)=1
此時已知F(2)=1, F(3)=2, F(4)=3, 可知道F(h)的成長型態應為費式數列,其型態描述應為 (a). 當h為一或零,F(h)=h;(b). 其他狀況下,F(h)=F(h-1)+F(h-2)

根據 設 2. 可知,N=nL+nR+1
假設N=F(h+2)-1為真的狀況下,因為AVL 樹的子樹型態應與AVL樹本身相同,因此nL可為F(hL+2)-1, nR可為F(hR+2)-1
根據設 1. nL= F(h-1+2)-1, nR= F(h-2+2)-1 = F(h)-1

因此,N=nL+nR+1可為
N= F(h+1)-1+F(h)-1+1
N= F(h+1)+F(h)-1
假設h=1,則得到N= F(h+1)+F(1)-1
根據費式函數可知,F(1)=1
因此N= F(h+1)+F(1)-1也可為N= F(h+2)-1 得證...

arrow
arrow

    archerdevil 發表在 痞客邦 留言(0) 人氣()