红黑树理解 (三)变色

红黑树理解 (一) 从2-3树到红黑树
红黑树理解(二)插入过程图解
红黑树理解(三)变色
红黑树理解(四)左旋
红黑树理解(五)右旋

什么情况下,节点需要变色?

插入新的节点后,新的红黑树不再满足原先的5个规则,需要对原来的树进行调整。调整的措施有变色和旋转。多数情况下,既要变色,又要旋转。少数情况是只需要变色就能平衡的。

变色过程举例

这里举一个,只需要变色,就能使红黑树平衡的例子。并不意味着,只通过变色,就能够使红黑树平衡。
当前节点的父节点和叔节点都是红色, 如下图:

新节点默认是红色(如果默认为黑色,直接就违反规则5了),插入后,4和5都是红色,不满足规则四。如下图:

进行变色操作,5和7变黑色,6变红色。如下图,当然根节点6还是不符合规则2。

将根节点也改为黑色。如下图,红黑树再次平衡。

连续插入5,10,15,20会怎么样?

在15插入时,会有一次左旋,左旋比较复杂,后面文章会分析。继续插入20时,只需要变色,就能完成自平衡。如下图:
在这里插入图片描述

红黑树,超强动静图详解,简单易懂

红黑树的原理 (插入+ 删除) 案例分析

猜你喜欢

转载自blog.csdn.net/zhangjin1120/article/details/121222375
今日推荐