首页 > 其他 > 详细

RB-Tree详解

时间:2019-03-29 21:04:01      阅读:121      评论:0      收藏:0      [点我收藏+]

红黑树具有很优秀的特性,其自平衡性特性,局部调整特性使得红黑树插入,删除,以查找,以及这些过程的内存资源的占用,的综合性能是非常高的(通常我们会拿红黑树和AVL树进行对比)。

对于红黑树的这些特性,在此不再赘述。我们在此讨论红黑树的插入,删除的过程。

先讨论插入过程:

1   插入节点为根结点,则红色变黑色

                               技术分享图片

2  插入节点的父亲节点为黑节点,则插入节点为红色节点,不需要变色

技术分享图片

3  若爷爷节点为根节点,父亲节点和叔叔节点为红色,则,插入节点仍为红色,父亲节点和叔父节点变为黑色,爷爷节点仍然为黑色(根结点必须为黑色)

                                                                                    技术分享图片             技术分享图片

4  若爷爷节点不是根节点,父亲节点和叔叔节点为红色,则,插入节点仍为红色,父亲节点和叔父节点变为黑色,爷爷节点变为红色。

                                                    技术分享图片技术分享图片

5  插入节点的 父亲节点为红色,父亲的兄弟,即叔叔节点为黑色时(没有叔叔节点时,叶子节点存在,且也为黑色),此时要经过旋转变换。

 技术分享图片技术分享图片

上述插入的是节点40

 

技术分享图片技术分享图片

 

 上述是插入节点70

可见,针对情况五,是存在不同情况的。需要区分插入的节点是父亲节点的左节点,还是右节点。

如果是左节点,围绕插入节点的父亲节点向右旋转,父亲节点变成黑色,新插入的节点和爷爷节点变成黑色节点

如果是右子节点,需要经过两次旋转,使得插入节点旋转为父亲节点,并变为黑色,插入节点的父亲节点和爷爷节点变为红色儿子节点

 

RB-Tree详解

原文:https://www.cnblogs.com/shaonianpi/p/10623737.html

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