上篇文章介紹了關於二叉排序樹的查找算法,我們知道,二叉排序樹雖然能夠提高查找效率,併爲頻繁的插入、刪除操作提供便利,但如果構建不當,即:構建出的二叉排序樹不"平衡",也會大大降低查找效率。
爲此,我們需要將"不平衡"的二叉排序樹進行"平衡化"處理。
本篇文章將介紹平衡二叉樹。
何爲平衡二叉樹?
先看定義:
平衡二叉樹又稱AVL樹,一棵平衡二叉樹可能爲空樹,也可能爲具有下列性質的二叉排序樹:
- 左子樹和右子樹的高度之差的絕對值小於等於1
- 左子樹和右子樹也是平衡二叉排序樹
通常爲了方便,我們會給每個結點附加一個數字,給出該結點左子樹與右子樹的高度差,這個數字稱爲結點的平衡因子。
平衡