您的位置:首页 > 其它

CLRS 13.3插入

2016-01-21 14:06 127 查看
13.3-1

不破坏性质 4 不代表不破坏红黑树其他性质,若将 zz 着为黑色,那么性质 5 将被破坏。

13.3-2

只给出插入后的结果,调整步骤略。



13.3-3

图 13-5:

a) 转换前结点 A,B,C,DA,B,C,D 的黑高都是 k+1k+1,转换后 A,B,DA,B,D 的黑高是 k+1k+1, CC 变成 k+2k+2;

b) 转换前结点 A,B,C,DA,B,C,D 的黑高都是 k+1k+1,转换后 A,B,DA,B,D 的黑高是 k+1k+1, CC 变成 k+2k+2。

图13-6

情况2、3转换前结点 A,B,CA,B,C 的黑高都是 k+1k+1,转换后 A,B,CA,B,C 的黑高是 k+1k+1。

13.3-4

颜色被设置为红色的情况只有 1 和 3,这两种情况都是将
z.p.p
变为红色。如果
z.p.p
是哨兵,则
z.p
是根结点,通过循环不变式的 b) 部分以及
RB-INSERT-FIXUP
的第一行知此时会跳出循环。对于情况 2,在
z.p.p
着成红色前我们先设置了
z = z.p
,然后在着色前我们旋转
z
,此时
z.p.p
和情况 2 前后就成了一样了,因此是没有问题的。

13.3-5

当 n=2n=2 时,根的孩子结点必是红色。以后每次插入结点时,如果是情况 1,则插入结点时红色;如果是情况 2、3,虽然有颜色改变,但红黑数目不变,在旋转结束后就跳出循环。

因此树中至少有一个红结点。

13.3-6

用栈保存从根节点至插 入结点路径中所有的结点。然后将栈传给
RB-INSERT-FIXUP
以及
LFET-RORATE
RIGHT-RORATE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: