首页 > 其他 > 详细

红黑树

时间:2019-10-02 16:23:01      阅读:90      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

 技术分享图片

 

 

 

技术分享图片

 

 

 

技术分享图片

 

 

 问题:

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


 

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

技术分享图片

技术分享图片

 

 

 

所以要用到红黑树:

 


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

 

 

技术分享图片

 

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

技术分享图片

 

 

  技术分享图片底层节点:

 

 

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

 

  技术分享图片

 

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

 技术分享图片

 

 

技术分享图片

 


 

 红黑树接口定义:  

  技术分享图片

技术分享图片

 

技术分享图片

 


 

红黑树的动态调整算法:

  插入:

技术分享图片

 

 技术分享图片

 

 

技术分享图片

 

 

双红修正算法:

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

  技术分享图片

 

 

技术分享图片

 

 

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

  技术分享图片

 

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

  技术分享图片

 

红黑树

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!