有关BST搜索树转换为AVL高度平衡树的旋转问题
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,最近在复习数据结构,看到BST的时候遇到了问题,就是当删除或增加树中节点时,要求保证树的高度平衡行,也就是使BST成为AVL。后来看了很多资料,说LL、RR、LR、RL啥的,没看懂。之后经过和同学研究
千家信息网最后更新 2025年12月03日有关BST搜索树转换为AVL高度平衡树的旋转问题
最近在复习数据结构,看到BST的时候遇到了问题,就是当删除或增加树中节点时,要求保证树的高度平衡行,也就是使BST成为AVL。
后来看了很多资料,说LL、RR、LR、RL啥的,没看懂。之后经过和同学研究发现了一个特性,就是offending node与其回溯路径上的最近的两个点有大小关系。
如上图,一个空BST树,插入16到树中,由于是空树,那么16就作为根节点。之后再输入3。3比16小,放在16的左边作为左子节点,再输入7,7比16小,走左子树一边,然后7再和3相比较,7比3大,走3的右子树。但是如上图所示,这不是一棵AVL树,因为16的左子树高度为2,右子树高度为0,左右高度差的绝对值为2,超过了AVL的条件:左右高度绝对差<2。那么就需要"旋转子树"以保证其AVL特性。
看了很多书,都说什么左旋转啊右旋转啊,像上图这种情况还比较复杂,需要先左旋转后右旋转。
其实,经过这些天的研究发现,以上图为例,当节点7进入树之后,打破了平衡,那么就从节点7开始回溯找到offending node,也就是节点16。然后选择offending node与回溯路径上的距离节点16的最近的两个node,也就是节点3和7。这三个点选取之后,对三个点进行大小比较,找出最小、最大和中间节点,比如16、3、7三个节点的按大小排序后的顺序是3、7、16。然后中间的节点(节点7)作为新树的根,其左节点是最小节点,右节点是最大节点,然后将新树接回原来的树上。
节点
高度
子树
上图
三个
也就是
大小
最大
最小
两个
就是
左旋
特性
路径
保证
研究
输入
问题
复杂
这不
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络技术专业难找工作
税务UK连不上服务器
做好网络安全工作等
数据库相容性
网络安全人人有责的顺口溜
传奇世界怎么选服务器
适用于深度学习的云服务器
labview访问服务器
服务器有哪些系统
扬州推广网络技术收费标准
软件开发集成项目介绍 背景
读研网络安全好就业吗
魔兽世界退役服务器什么时候出售
为什么要配置MYSQL数据库
网络安全周效果
清远网络安全宣传活动
网络安全讲课搞笑
北京精选上位机软件开发
数据库设计人员与用户之间
俄罗斯钓鱼4数据库算法
网络安全人人有责的顺口溜
数据库三引号怎么打
医院网络安全检查领导组织
流溪河服务器怎么样
网络安全法包括哪几部分
宁夏大学软件开发
数据库改游戏
杭州东信网络技术有限公司郑州
服务器租凭管理系统
接龙小程序的数据库