AVL树

  • 一、AVL树
    • 1、AVL树的概念
    • 2、AVL树节点的定义(描述)
    • 3、AVL树的插入
    • 4、AVL树的旋转
      • (1)左单旋
      • (2)右单旋
      • (3)左右双旋
      • (4)右左双旋
      • (5)插入的整体代码
    • 5、AVL树的验证
    • 6、AVL树完整代码

一、AVL树

1、AVL树的概念

二叉搜索树虽可以缩短查找的效率,但如果数据有序接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,时间复杂度位O(N),效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种解决上述问题的方法:
当向二叉搜索树中插入新结点后,如果能保证每个结点的*左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整,让它即满足二叉搜索树的要求,也接近于一颗完全二叉树),即可降低树的高度,从而减少平均搜索长度。
一棵AVL树或者是空树,或者是具有以下性质的二叉搜索树: