有关BST搜索树转换为AVL高度平衡树的旋转问题
发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,最近在复习数据结构,看到BST的时候遇到了问题,就是当删除或增加树中节点时,要求保证树的高度平衡行,也就是使BST成为AVL。后来看了很多资料,说LL、RR、LR、RL啥的,没看懂。之后经过和同学研究
千家信息网最后更新 2024年11月14日有关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安全错误
数据库的锁怎样保障安全
计算机三级数据库技术硬件
塔式服务器做渲染和建模
电力 网络安全 新闻
北京手机软件开发前十名
南京招聘 软件开发
数据库管理系统安全结束语
mysql数据库备份物理
中文核心期刊遴选数据库网
数据库需求分析简单
vs2015数据库表打不开
沈阳数控软件开发
服务器登录权限管理办法
网络安全的整改措施
win10可运行的数据库
山东科技大学第四届互联网
软件开发的性能指标
dota英雄数据库
腾讯云服务器和cpu
wincc数据库是哪个光盘
日照商城软件开发外包公司
清然网络技术有限公司
网络安全管理人员
数据库基础工资
多模态语言数据库的优势存储方便
村里入户宣传网络安全知识
工控网络安全评估
学网络安全的人会当黑客吗
惠州市想学计算机网络技术
腾讯服务器的宽带是多少m的
hikari数据库加密