数据结构-二叉平衡树

一.平衡二叉树

二叉搜索树插入的次序不同导致不同的深度和平均查找长度ASL

左右子树高度差不超过绝对值1的二叉搜索是二叉平衡树

二.平衡二叉树的调整

在右子树的右子树上的插入做RR插入

把被破坏节点的右子树变成跟节点并把这个右子树的左子树挂载到原来被破坏的结点的右子树,被破坏的节点作为右儿子

插入节点在被破坏者右边的右边是RR

不一定插在某个节点的右边

在左子树的左子树上的插入做LL插入

把被破坏节点的左子树变成跟节点并把这个左子树的右子树挂载到原来被破坏的结点的左子树,被破坏的节点作为左儿子

插入节点在被破坏者左边的左边是LL

两个节点的平衡性被破坏了,只要考虑最下面的节点这个节点平衡了上面节点自然就平衡了

被破坏结点左边的右边插入,叫做LR插入

所以需要关注May,Aug,Mar三个结点将这三个结点的中间值结点变为跟结点,这里的中间结点是Mar所以需要先将提上来,左旋转,然后再进行右旋转

第一次旋转(左旋转)

第二次旋转(右旋转)

RL旋转与LR旋转相似

相关推荐
哦吼!44 分钟前
数据结构—二叉树(二)
数据结构
码农Cloudy.3 小时前
C语言<数据结构-链表>
c语言·数据结构·链表
lightqjx3 小时前
【数据结构】顺序表(sequential list)
c语言·开发语言·数据结构·算法
田野追逐星光4 小时前
堆的应用(讲解超详细)
数据结构
谭林杰5 小时前
散链表基本操作讲解
数据结构·链表
yi.Ist5 小时前
数据结构 —— 栈(stack)在算法思维中的巧妙运用
开发语言·数据结构
祁思妙想6 小时前
【LeetCode100】--- 1.两数之和【复习回滚】
数据结构·算法·leetcode
橘颂TA6 小时前
【C++】红黑树的底层思想 and 大厂面试常问
数据结构·c++·算法·红黑树
<但凡.7 小时前
数据结构与算法之美:广义表
数据结构·c++·算法
偷偷的卷9 小时前
【算法笔记 day three】滑动窗口(其他类型)
数据结构·笔记·python·学习·算法·leetcode