透彻理解红黑树之五

来源:互联网 发布:服务器远控软件 编辑:程序博客网 时间:2024/04/28 00:52
 

首先,各个结点插入与以上的各种插入情况,一一对应起来,如图:

    以下的20张图,是依次插入这些结点:12 1 9 2 0 11 7 19 4 15 18 5 14 13 10 16 6 3 8 17的全程演示图,已经把所有的5种插入情况,都全部涉及到了:

红黑树的一一插入各结点:12 1 9 2 0 11 7 19 4 15 18 5 14 13 10 16 6 3 8 17的全程演示图完。

 

红黑树删除情况全过程演示
    红黑树的所有删除情况,
如下:

情况1: N 是新的根。
情形2:兄弟节点S是红色
[对应我第二篇文章中,情况1:x的兄弟w是红色的。]
情况 3: 兄弟节点S是黑色的,且S的俩个儿子都是黑色的。但N的父节点P,是黑色。
[对应我第二篇文章中,情况2:x的兄弟w是黑色的,且兄弟w的俩个儿子都是黑色的。
(这里,N的父节点P为黑)]
情况4: 兄弟节点S 是黑色的、S 的儿子也都是黑色的,但是 N 的父亲P,是红色。
[还是对应我第二篇文章中,情况2:x的兄弟w是黑色的,且w的俩个孩子都是黑色的。
(这里,N的父节点P为红)]
情况5: 兄弟S为黑色,S 的左儿子是红色,S 的右儿子是黑色,而N是它父亲的左儿子。
//此种情况,最后转化到下面的情况6。
[对应我第二篇文章中,情况3:x的兄弟w是黑色的,w的左孩子是红色,w的右孩子是黑色。]
情况6: 兄弟节点S是黑色,S的右儿子是红色,而 N 是它父亲的左儿子。
[对应我第二篇文章中,情况4:x的兄弟w是黑色的,且w的右孩子时红色的。]

    接下来,便是一一删除这些点12 1 9 2 0 11 7 19 4 15 18 5 14 13 10 16 6 3 8 17为例,即,红黑树删除情况全程演示:

    各个结点删除与以上的六种情况,一一对应起来,如图:

首先,插入12 1 9 2 0 11 7 19 4 15 18 5 14 13 10 16 6 3 8 17结点后,形成的红黑树为:

 

然后,以下的20张图,是一一删除这些结点12 1 9 2 0 11 7 19 4 15 18 5 14 13 10 16 6 3 8 17所得到的删除情况的全程演示图: