AVL树 伸展树
进行方式 每次插入进行旋转,保证每个节点的子树高度相差最多为1(根节点为0)
每次检索某个节点,进行旋转,保证可能经常需要检索的节点深度不为logN,
平均检索M次的平均时间为MlogN
单旋转
插入位置和最近不平衡结点成一字型,
对插入位置的父节点进行单旋转
AVL树和伸展树的比较

 

插入位置和根节点距离为1
对根节点进行单旋转
AVL树和伸展树的比较

 

双旋转
插入位置和最近不平衡位置成之字型,
先对插入位置的父节点进行单旋转
在对祖父节点(不平衡结点)进行单旋转
AVL树和伸展树的比较

 

插入位置与祖父节点成一字型,进行同向双旋转
第一次旋转,针对插入位置的父节点
第二次旋转,针对插入位置的祖父节点(一次旋转后,当前插入元素的父节点)
AVL树和伸展树的比较

 

插入位置与祖父节点成一字型,进行反向双旋转
第一次旋转,针对插入位置的父节点
第二次旋转,针对插入位置的祖父节点(一次旋转后,当前插入元素的父节点)
AVL树和伸展树的比较

 

相关文章:

  • 2021-05-30
  • 2021-06-20
  • 2021-07-10
  • 2021-05-24
  • 2021-09-01
猜你喜欢
  • 2022-12-23
  • 2021-09-01
  • 2021-08-11
  • 2022-12-23
  • 2022-01-01
  • 2021-11-27
  • 2022-03-08
相关资源
相似解决方案