数据结构-二叉平衡树

一.平衡二叉树

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

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

二.平衡二叉树的调整

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

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

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

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

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

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

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

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

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

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

第一次旋转(左旋转)

第二次旋转(右旋转)

RL旋转与LR旋转相似

相关推荐
天赐学c语言12 分钟前
12.10 - 合并两个有序链表 && 对字节对齐的理解
数据结构·c++·leetcode·链表
仰泳的熊猫14 分钟前
1092 To Buy or Not to Buy
数据结构·c++·算法·pat考试
罗湖老棍子20 分钟前
【深基16.例3】二叉树深度(洛谷P4913)
数据结构·算法·二叉树
前端小L1 小时前
回溯算法专题(九):棋盘上的巅峰对决——经典「N 皇后」问题
数据结构·算法
橘颂TA2 小时前
【剑斩OFFER】算法的暴力美学——交易逆序对的总数
数据结构·算法·leetcode
2401_841495642 小时前
【LeetCode刷题】合并区间
数据结构·python·算法·leetcode·合并·遍历·排序
xu_yule2 小时前
数据结构(14)二叉树的模拟实现和便利代码
数据结构·算法
UP_Continue2 小时前
哈希表实现--开放定址法
数据结构·哈希算法·散列表
lxh01132 小时前
合并区间题解
数据结构·算法·leetcode