【数据结构复习】AVL树的旋转

【数据结构复习】是学习、复习常用数据结构系列文章。数据结构与算法密不可分,是程序实现功能的重要组成部分。优秀的数据结构可以提高算法的时间及空间效率。反之,将增加算法复杂度,甚至妨碍程序的正确执行。

一、引言
由于普通二叉查找树可能出现有极不平衡的情况,使时间复杂度最坏,于是有学者提出限制二叉查找树各子树的分布,使树形状平衡,保证较好的查找复杂度。其中最著名平衡树之一即为AVL树。
二、AVL树的定义
官方的定义可以参见其它网上资料。在这里我用大白话解释,话粗理不粗。有一对有兄弟A和B,他们的共同父亲是G。AVL树绝对不允许这种情况出现:
这对兄弟其中一人没有孩子,另外一人却当上了爷爷。

三、AVL树的八种违例情况
网上有很多总结,说四种情况。但是经常把同类型的几种情况列举出来,另外的几种却忽略不说。导致初学AVL树的朋友都糊里糊涂的。就列侯捷老师的《STL源码剖析》都是讲得不明不白。
本文干脆把八种情况都列举出来,一次性讲解。
还记得上文的定义吗?所谓AVL树违例,本来一个家庭好好的(合理AVL树),却因为这个家庭新添了一丁(插入一节点),使得兄弟A和B,一人没有孩子,另一个却当上了爷爷。
如果当上爷爷的是A,没孩子的是B,有如下四种情况,
(1)

(2)

(3)

(4)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值