7. 樹--平衡二叉樹

平衡二叉樹

平衡二叉樹(Balanced Binary Tree),又稱AVL樹

定義

空樹,或者任一結點左、右子樹高度差的絕對值不超過1,即|BF(T)|1

  • “平衡因子”(Balance Factor,簡稱BF):BF(T)=hLhR ,其中hLhR 分別爲T 的左、右子樹的高度

特性

  • nh 是高度爲h 的平衡二叉樹的最小結點數,有:
    • nh=nh1+nh2+1
    • nh=Fh+21,h0Fh 爲斐波那契函數
    • 給定結點數爲n 的AVL樹的查找效率是O(logn2) ,最大高度是logn2

平衡二叉樹的調整

在插入結點時,導致某個結點不平衡,把這個結點稱爲發現者,插入結點稱爲麻煩結點

RR插入

麻煩結點在發現者右子樹的右邊,需要RR旋轉(右單旋)
image

LL插入

麻煩結點在發現者左子樹的左邊,需要LL旋轉(左單旋)
image

LR插入

麻煩結點在發現者左子樹的右邊,需要LR旋轉
image

RL插入

麻煩結點在發現者右子樹的左邊,需要RL旋轉
image

注意:有時候插入元素即便不需要調整結構,也可能需要重新計算一些平衡因子

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章