十三、Mysql之平衡二叉树(AVL树)

1、平衡二叉树(AVL树)
  性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树;
  AVL树如图:

  非AVL树如图:
导致AVL树失去平衡大致分为4种:
  LL:LeftLeft,也称“左左”。插入或删除一个节点后,根节点的左孩子(Left Child)的左孩子(Left Child)还有非空节点,导致根节点的左子树高度比右子树高度高2,AVL树失去平衡。
  RR:RightRight,也称“右右”。插入或删除一个节点后,根节点的右孩子(Right Child)的右孩子(Right Child)还有非空节点,导致根节点的右子树高度比左子树高度高2,AVL树失去平衡。
  LR:LeftRight,也称“左右”。插入或删除一个节点后,根节点的左孩子(Left Child)的右孩子(Right Child)还有非空节点,导致根节点的左子树高度比右子树高度高2,AVL树失去平衡。
  RL:RightLeft,也称“右左”。插入或删除一个节点后,根节点的右孩子(Right Child)的左孩子(Left Child)还有非空节点,导致根节点的右子树高度比左子树高度高2,AVL树失去平衡。


四种失去平衡的情况下对应的旋转方法:
  LL旋转步骤:
    1)、旧根节点的左孩子为新根节点,
    2)、旧根节点变为新根节点的右孩子,
    3)、旧根节点的左孩子的右孩子为旧根节点的左孩子

  RR旋转步骤:
    1)、旧根节点的右孩子为新根节点,
    2)、旧根节点变为新根节点的左孩子,
    3)、旧根节点的右孩子的左孩子为旧根节点的右孩子
  LR旋转:
    1)、根节点的左孩子进行RR旋转,
    2)、根节点进行LL旋转,
  RL旋转:
    1)、根节点的右孩子进行LL旋转,
    2)、根节点进行RR旋转,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值