AVL树的左右旋转
2016-04-17 10:01
232 查看
AVL树的旋转操作 图解 最详细
各大教课书上讲的都是左旋与右旋,其实这样很容易理解错误,我们换一种叫法。
我们称呼左旋为:逆进针旋转。
我们称呼右旋为:顺进针旋转。
老规矩,直接上图。
如果再看不懂AVL树的旋转,我就无能为力了。。。
如果图中有错误,欢迎指正。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/27/69398ab5378bd0392a462bdf77b5a0f9)
代码篇
前文已完成了 二叉查找树的实现(BST) 的操作。
可以直接利用BST树,插入和删除操作不变。
变的只是在插入和删除后,进行向根方向的回溯,找到第一个不平衡的节点,分8种情况进行不同的旋转即可。
可以理解,这个不平衡的节点一定是在叶子节点附近,也就是上图所示的各种情况。
所以,AVL树的代码不是一两天就可以写出来的,慢慢会补上代码。
各大教课书上讲的都是左旋与右旋,其实这样很容易理解错误,我们换一种叫法。
我们称呼左旋为:逆进针旋转。
我们称呼右旋为:顺进针旋转。
老规矩,直接上图。
如果再看不懂AVL树的旋转,我就无能为力了。。。
如果图中有错误,欢迎指正。
代码篇
前文已完成了 二叉查找树的实现(BST) 的操作。
可以直接利用BST树,插入和删除操作不变。
变的只是在插入和删除后,进行向根方向的回溯,找到第一个不平衡的节点,分8种情况进行不同的旋转即可。
可以理解,这个不平衡的节点一定是在叶子节点附近,也就是上图所示的各种情况。
所以,AVL树的代码不是一两天就可以写出来的,慢慢会补上代码。
相关文章推荐
- VMware Workstation 11 中 Ubuntu 14.04 的 VMware Tools 问题 : 共享文件夹
- hadoop文件的序列化
- Android_UI:drawable文件夹下 创建XML
- Android程序崩溃异常处理之自动发送邮件
- 分布式架构高可用架构篇_04_Keepalived+Nginx实现高可用Web负载均衡
- 多态分类
- Android日志工具Log
- Android开源之BaseRecyclerViewAdapterHelper(持续更新!)
- 几种常见的中文分词包的分析与比较
- [LeetCode]73. Set Matrix Zeroes
- 简单的java使用SAX解析xml
- 索引优先队列
- SVN修改地址
- Storm入门
- 文章标题
- Linux下yum保存已安装包的方法
- UIApplication sharedApplication总结
- 包含min函数的栈
- 接口
- 线性代数N阶行列式