AVL树和伸展树的比较
AVL树 | 伸展树 | |
进行方式 | 每次插入进行旋转,保证每个节点的子树高度相差最多为1(根节点为0) |
每次检索某个节点,进行旋转,保证可能经常需要检索的节点深度不为logN,
平均检索M次的平均时间为MlogN
|
单旋转 |
插入位置和最近不平衡结点成一字型,
对插入位置的父节点进行单旋转
|
插入位置和根节点距离为1
对根节点进行单旋转
|
双旋转 |
插入位置和最近不平衡位置成之字型,
先对插入位置的父节点进行单旋转
在对祖父节点(不平衡结点)进行单旋转
|
插入位置与祖父节点成一字型,进行同向双旋转
第一次旋转,针对插入位置的父节点
第二次旋转,针对插入位置的祖父节点(一次旋转后,当前插入元素的父节点)
插入位置与祖父节点成一字型,进行反向双旋转
第一次旋转,针对插入位置的父节点
第二次旋转,针对插入位置的祖父节点(一次旋转后,当前插入元素的父节点)
|
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出,
原文链接
如有问题, 可邮件(zxy.hope@gmail.com)咨询.