码迷,mamicode.com
首页 > 其他好文 > 详细

学习数据结构的第九天(三)

时间:2020-04-05 20:14:50      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:旋转   分析   处理   删除   出现   是什么   avl   代码   实现   

  接下来就看一下avl树是怎么进行旋转,怎么进行遍历等操作的。

技术图片

 

为什么都是   多了两层,而不会有  多了三层,多了四层这些操作呢?

因为的话造成不平衡:是插入或者删除或者之类的。在那个临界点,就把它解决成了平衡。之后每次出现两层的时候,都进行处理

就不会有三层 四层的 情况

 我能理解这里的四种情况,但是我思考的事情是:技术图片

 

 这其实也是作为不平衡的情况,为什么这种情况不算?

原因:技术图片

 

 看了对于旋转的操作之后,就知道其实如果我上面那种情况,意思就是:Y是空,那么是一样的,就只是说它为空而已

现在对于  左左,右右知道是什么意思了。

意思就是:造成问题的节点,是在从根节点出发往哪边走

技术图片

 

 自己知道右旋转什么意思了:把根顺时针,就像是往右转了一样(应该是为了和左左对应)

然后的话继承相应的Y

 

技术图片

 

 对于这种情况,其实就是  左右   的情况

key:从底层开始先实现,最底层是偏右,所以就左旋转

然后再看这个结构,上层就变成了左,所以就右旋转

自己知道应该从底层开始旋转,并且知道了对应什么情况下实行什么旋转,并且知道旋转对应的操作是什么,下章节去分析代码

分析代码的目的是:知道什么时候需要旋转。

学习数据结构的第九天(三)

标签:旋转   分析   处理   删除   出现   是什么   avl   代码   实现   

原文地址:https://www.cnblogs.com/startFrom0/p/12638441.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!