AVL 树 学习概要

一、AVL 树是什么?

AVL是一种自平衡的二叉查找树,最大的特点是AVL树任意两个节点的高度差最大为1。什么?你问我二叉查找树是啥?拉黑吧有事漂流瓶联系吧。。。那么请你先去看看什么是二叉查找树在来看AVL吧。

二、怎么实现的?

当然实在二叉树插入或删除数据的时候进行一些 平衡 操作啦。

在AVL树中插入或删除一个节点,使得二叉树失去平衡分为四种状态。

(图片来自参考内容)


1、一个树(可能是子数)的(ROOT) 左子树(L1) 的 左子树(L2) 下的 节点 导致 失去平衡 ,称作 LL:


2、一个树(可能是子数)的(ROOT) 左子树(L1) 的 右子树(R1) 下的 节点 导致 失去平衡 ,称作 LR


3、一个树(可能是子数)的(ROOT) 右子树(R1) 的 左子树(L2) 下的 节点 导致 失去平衡 ,称作 RL


4、一个树(可能是子数)的(ROOT) 右子树(R1) 的 右子树(R2) 下的 节点 导致 失去平衡 ,称作 RR


那么接下来就是 递归的 对失去平衡树(及其父节点为根的树) 的旋转工作。

1、 LL 情况:围绕L1作 右旋

ROOT.left = L2

L1.left = L2.right

L2.right = L1

2、LR 情况:

首先:围绕 L1 作 左旋(RR)

再:围绕 ROOT 作 右旋(LL)

3、RL 情况:

首先:围绕 R1 作 右旋(LL)

再:围绕 ROOT 作 左旋(RR)

4、RR 情况:围绕 R1 作 左旋

ROOT.right = R2

R1.right = R2.left

R2.left = R1


参考:

http://www.cnblogs.com/skywang12345/p/3576969.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值