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

红黑树

时间:2019-10-02 16:33:22      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:nbsp   变换   info   不能   左右   avl   技术   image   旋转   

技术图片

 

 

 技术图片

 

 

 

技术图片

 

 

 

技术图片

 

 

 问题:

  能否进一步提高,比如总体O(n+h)、单版本O(1)? 答案是可以!!


 

相邻的版本之间的差异不能超过O(1),显然AVL树的删除操作不能满足这一点,因为当每次删除一个节点后,有可能自底而上,逐层引发多大logN次的旋转。

技术图片

技术图片

 

 

 

所以要用到红黑树:

 


 红黑树所具有的规则:技术图片

 

 

技术图片

 

 对红色节点做一次提升变换:

技术图片

 

 

  技术图片底层节点:

 

 

技术图片在经过提升之后:

 

  技术图片

 

 原来提升之后的红黑树就是4阶B树啊!!!

 技术图片

 

 

技术图片

 


 

 红黑树接口定义:  

  技术图片

技术图片

 

技术图片

 


 

红黑树的动态调整算法:

  插入:

技术图片

 

 技术图片

 

 

技术图片

 

 

双红修正算法:

  第一种情况:叔父节点u是黑色的

  技术图片

 

 

技术图片

 

 

 第二种情况:叔父节点u是红色的

  技术图片

 

 需要在出现问题的节点中,找到居中的那个关键码,并且以他为界,将原先的大节点分为左右两个新的节点。居中分界的关键码,将被取出上移插入父节点的位置中。

  技术图片

 

红黑树

标签:nbsp   变换   info   不能   左右   avl   技术   image   旋转   

原文地址:https://www.cnblogs.com/ccpang/p/11617529.html

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