有关BST搜索树转换为AVL高度平衡树的旋转问题
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,最近在复习数据结构,看到BST的时候遇到了问题,就是当删除或增加树中节点时,要求保证树的高度平衡行,也就是使BST成为AVL。后来看了很多资料,说LL、RR、LR、RL啥的,没看懂。之后经过和同学研究
千家信息网最后更新 2025年01月31日有关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安全错误
数据库的锁怎样保障安全
软件开发师考试视频
科技互联网时代的现状
c语言数据库图书管理源代码
主dns服务器ping测试
陕西工控服务器机箱供应
软件开发 项目管理 咨询
戴尔14代服务器
全球科技和互联网公司
北京安卓软件开发价格
显示出数据库的数据0
网络技术学习头像情侣
网络安全技术传输
服务器散热器怎么选
湘潭软件开发培训哪里好
登录窗体怎么连接数据库
想学网络安全有哪些书籍
app软件开发制作报价
数据库数值型最大宽度
获取的接口数组里没数据库
新乡软件开发哪个专业好
计算机网络技术工程课程设计
arma3怎么租服务器
陕西工控服务器机箱供应
数据库 date
广东工程软件开发排行榜
如何选择好的网络安全接入控制
附加数据库找不到目录
服务器ddr5内存条转接卡
网络安全杭电和重邮
服务器安全检测系统