数据结构简介

数据结构简介

AVL树

1. 定义

带有平衡条件的二叉搜索树
数据结构简介:树-------AVL树

2. 时间复杂度

O(logN)

3. 平衡方式

必须平衡的节点称为a,a的两颗子树的高度差为2

1) 单旋转

  1. 对a的左儿子的左子树进行一次插入
    数据结构简介:树-------AVL树

  2. 对a的右儿子的右子树进行一次插入
    数据结构简介:树-------AVL树

2) 双旋转

  1. 对a的左儿子的右子树进行一次插入
    数据结构简介:树-------AVL树
  2. 对a的右儿子的左子树进行一次插入
    数据结构简介:树-------AVL树

4. 单旋转、双旋转举例

将1~16插入空AVL树

  • 插入1~3:单旋转
    数据结构简介:树-------AVL树
  • 插入4~5:单旋转
    数据结构简介:树-------AVL树
  • 插入6:单旋转
    数据结构简介:树-------AVL树
  • 插入7:单旋转
    数据结构简介:树-------AVL树
  • 插入10~16:双旋转
    1)插入15:右-左双旋转
    数据结构简介:树-------AVL树
    2)插入14:右-左双旋转
    数据结构简介:树-------AVL树
    3)插入13、12、11、10:单旋转
    数据结构简介:树-------AVL树
    数据结构简介:树-------AVL树
  • 插入8不用变化
    数据结构简介:树-------AVL树
  • 最后插入9:左-右双旋转
    数据结构简介:树-------AVL树

5. 示例代码

相关文章: