AVL树

来源:互联网 发布:冯满天知乎 编辑:程序博客网 时间:2024/05/21 17:32

AVL树诞生的原因

如果数据是有序的或者接近有序的,搜索二叉树就会产生单支的情况,单支就相当于在顺序表中搜索元素,降低了效率。因此1962年俄罗斯两位数学家发明了AVL树。

AVL树

在二叉搜索树中插入新的结点后,保证每个结点的左右子树的高度之差的绝对值不超过1,就可以降低树的高的,减少平均搜索长度。
性质:
- 左右子树都是AVL树
- 左右子树的高的之差为-1或0或1(平衡因子)

AVL树的插入

  • 空树(直接插入)
  • 寻找插入位置
  • 插入新结点
  • 更新平衡因子(旋转调节)
旋转分析
  • 较高右子树的右侧—>(左单旋)
  • 较高左子树的左侧—>(右单旋)
  • 较高右子树的左侧—>(先右后左)
  • 较高左子树的右侧—>(先左后右)

    这里写图片描述

原创粉丝点击