AVL树的旋转操作 图解 最详细
2016-03-30 10:55
288 查看
转自/content/954643.html 点击打开链接
AVL树的旋转操作 图解 最详细
各大教课书上讲的都是左旋与右旋,其实这样很容易理解错误,我们换一种叫法。
我们称呼左旋为:逆进针旋转。
我们称呼右旋为:顺进针旋转。
老规矩,直接上图。
如果再看不懂AVL树的旋转,我就无能为力了。。。
如果图中有错误,欢迎指正。
代码篇
前文已完成了 二叉查找树的实现(BST) 的操作。
可以直接利用BST树,插入和删除操作不变。
变的只是在插入和删除后,进行向根方向的回溯,找到第一个不平衡的节点,分8种情况进行不同的旋转即可。
可以理解,这个不平衡的节点一定是在叶子节点附近,也就是上图所示的各种情况。
所以,AVL树的代码不是一两天就可以写出来的,慢慢会补上代码。
AVL树的旋转操作 图解 最详细
各大教课书上讲的都是左旋与右旋,其实这样很容易理解错误,我们换一种叫法。
我们称呼左旋为:逆进针旋转。
我们称呼右旋为:顺进针旋转。
老规矩,直接上图。
如果再看不懂AVL树的旋转,我就无能为力了。。。
如果图中有错误,欢迎指正。
代码篇
前文已完成了 二叉查找树的实现(BST) 的操作。
可以直接利用BST树,插入和删除操作不变。
变的只是在插入和删除后,进行向根方向的回溯,找到第一个不平衡的节点,分8种情况进行不同的旋转即可。
可以理解,这个不平衡的节点一定是在叶子节点附近,也就是上图所示的各种情况。
所以,AVL树的代码不是一两天就可以写出来的,慢慢会补上代码。
相关文章推荐
- 关于intel 网卡 i217 驱动安装不上的问题综述
- IOS RunLoop浅析 三
- web前端开发必看的14本书!
- Oracle:安装中的注意事项
- 2016.3.30 redis的配置密码 和进入 redis的流程
- C# 结构(structure)
- Oracle:安装中的注意事项
- c++ const 类
- python web开发 之 flask教程(三)
- SQL联接 外联接 内联接 完全联接 交叉联接
- js 实现动态key value(JSON字符串注意事项:key和value都要用双引号,官网指定用双引号)
- zip环境部署
- C# 枚举类型
- tomcat cpu负荷
- js 判断点是否在多边形内
- 【C/C++】引用和指针的区别
- PCL系列——将点云数据写入PCD格式文件
- FBO离屏渲染技术
- android popWindow 弹出时背景透明度渐变
- 利率计算v4.0--测试--软件工程