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,这两种情况都是将
13.3-5
当 n=2n=2 时,根的孩子结点必是红色。以后每次插入结点时,如果是情况 1,则插入结点时红色;如果是情况 2、3,虽然有颜色改变,但红黑数目不变,在旋转结束后就跳出循环。
因此树中至少有一个红结点。
13.3-6
用栈保存从根节点至插 入结点路径中所有的结点。然后将栈传给
不破坏性质 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
相关文章推荐
- jQuery选择器大全
- 40个Java集合面试问题和答案【上】【转载】
- mvc
- 面试官询问的刁钻问题——以及如何巧妙地应付它们
- PHP 类属性 类静态变量的访问
- Android 判断应用处于前后台
- 头文件的角色
- Combiner
- jquery 插件封装模板
- Leetcode 310. Minimum Height Trees
- MySQL索引背后的数据结构及算法原理
- NSLayoutConstraint
- UITextView时,点击键盘的Return,释放TextView第一响应者
- spl_autoload_register
- 大数据是让人幸福的科学
- 227,使用GCD异步下载图片,更新UI
- webdriver与浏览器_操作页面元素—弹出窗口
- LeetCode 101 Symmetric Tree(对称树)(*)
- ios UIStatusBar statusBar 状态栏 更改状态栏颜色
- 服务器慢 mysql-bin.000001文件占满磁盘的原因与解决