浅析AVL树

AVL树本质上还是一颗二叉搜索树,它满足以下特点:
1.其本身是一颗二叉搜索树。
2.左右子树的高度之差的绝对值小于等于1.

AVL树失衡如何处理?

情况1:在一个节点的左子树的左子树下插入一个新结点,即LL,在这种情况下,应该做如下处理:
在这里插入图片描述
将K1的右子树挂到K2的左子树下(K2->left = K1->right)
将K2挂在K1的右子树下(K1->right=K2)
需要注意的是高度也发生了变化!需要注意的是高度也发生了变化,每颗树高度计算为:取左右子树高的那棵树,在将高的那棵树的高度+1就是要求的树的高度。

情况2:在一个节点的右子树的右子树下插入一个新节点,即RR,在这种情况下,应做如下处理:
在这里插入图片描述 将K2的左子树挂在K1的右子树下(K1->RIGHT=K2->LEFT)
将K1挂在K2的左子树下(K2->LEFT=K1);
需要注意的是高度也发生了变化,每颗树高度计算为:取左右子树高的那棵树,在将高的那棵树的高度+1就是要求的树的高度。

情况3:RL类型的失衡
在这里插入图片描述
先进行LL旋转,再进行RR旋转。需要注意的是找准失衡的节点。
图中K3节点失衡,先将其进行LL旋转。
旋转之后K2节点失衡,在对K2进行RR旋转。

情况4:LR类型的失衡

在这里插入图片描述
找到失衡的节点A,先将其进行LL旋转。
再找到失衡的节点B,将其进行RR旋转。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值