数据结构简介
AVL树
1. 定义
带有平衡条件的二叉搜索树
2. 时间复杂度
O(logN)
3. 平衡方式
必须平衡的节点称为a,a的两颗子树的高度差为2
1) 单旋转
-
对a的左儿子的左子树进行一次插入
-
对a的右儿子的右子树进行一次插入
2) 双旋转
- 对a的左儿子的右子树进行一次插入
- 对a的右儿子的左子树进行一次插入
4. 单旋转、双旋转举例
将1~16插入空AVL树
- 插入1~3:单旋转
- 插入4~5:单旋转
- 插入6:单旋转
- 插入7:单旋转
- 插入10~16:双旋转
1)插入15:右-左双旋转
2)插入14:右-左双旋转
3)插入13、12、11、10:单旋转
- 插入8不用变化
- 最后插入9:左-右双旋转