平衡二叉树的调整

学习数据结构以来,平衡二叉树的调整一直会了又忘,写个博客加深记忆

          理解:平衡二叉树:任意结点的左右子树高度之差要小于等于1。当新插入的结点使得这种平衡性被破坏,就需要调整。怎么调整取决于造成不平衡的“麻烦结点”和“根结点(插入后不平衡结点)”的位置关系。

最重要的是!!!!:调整哪三个结点

               怎么调整:将三个结点中位于中间的树变为根节点

1.右右旋转(RR)---插入结点是根结点右子树的右子树,如图

调整:把被破坏结点的右子树提上来当作根节点

举例:插入13导致结点5平衡因子=1-3=-2,而且14是5的右子树的右子树

2.左左旋转

调整:如下图所示,需要注意的是根据平衡二叉树原理将BR放到A的左子树

如果一个结点插入导致很多结点平衡被破坏,优先选最距离插入结点最近的结点为根结点调整

 上图Apr插入导致Mar和May平衡均被破坏,这里先选择Mar为根结点进行LL调整

3.LR旋转

4.RL旋转

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值