在RB-INSERT的第16行中,假设新插入的结点z是红色的。注意如果将z着为黑色,则在红黑树的性质4)就不会被破坏。那么我们为什么没有选择将z着为黑色呢?
2011-05-16 22:19
891 查看
如果把z着为黑色,那么性质5)一定被破坏。
如果把z着为红色,那么性质2)(如果根是红结点,则原来一定是空树)和性质4)(如果z的父结点是红节点)有可能会被破坏。
我估计修正违反性质5)所带来的复杂度要大于修正违反性质2)和性质4)。所以没有选择将z着为黑结点。
如果把z着为红色,那么性质2)(如果根是红结点,则原来一定是空树)和性质4)(如果z的父结点是红节点)有可能会被破坏。
我估计修正违反性质5)所带来的复杂度要大于修正违反性质2)和性质4)。所以没有选择将z着为黑结点。
相关文章推荐
- 如果爱情没有强大到可以忽略一切,那么所有的选择不过是权衡取舍
- 绝大多数情况下,没有解决不了的问题,只有因为平时缺少练习而惧怕问题的复杂度,畏惧的心理让我们选择避让,采取并不那么好的方案去解决问题
- 初学iOS,刚看到控件的strong&weak问题,如果答的不对还请指正。首先有一点,在OC中,如果对象没有强引用,就会被自动释放,那么为什么控件还可以设为weak?
- 插入数据时,如果原表没有对应的数据,则insert,如果有对应的数据则update
- 那么问题来了:我们为什么要选择 Hbase?
- GLSL 中 ,如果定义的 变量 没有在代码中使用到,那么不会被编译,用 glget* 是获取不到的
- Q: "为什么如果我们把这两个组件安装在同一个COM+组件包中问题就不会出现"(zz)
- 一个hitbernate配置文件,带几个表(注意mapping);如果连接字符串没有设置utf-8,向insert mysql 会产生乱码(utf8 或 utf-8)
- 我们为什么选择了Cassandra而没有用Hbase
- 如果我们不选择堕落,那么地狱的存在又有何意义?
- 如果我们是经常去批判别人,那么为什么我们经常地赞美别人
- 证明:在RB-DELETE中,如果y是红色的,则当y被删除后,红黑性质得以保持
- 初学iOS,刚看到控件的strong&weak问题,如果答的不对还请指正。首先有一点,在OC中,如果对象没有强引用,就会被自动释放,那么为什么控件还可以设为weak?
- NSMutableArray 如果只进行了声明,而没有进行初始化,那么程序不会报错,但是,声明的那个变量不起任何作用
- 有一个单项的链表,在没有头结点的情况下,只知道有一个指向结点B的指针p,假设这个结点B不是尾结点,删除该节点B。
- 我们为什么选择Java
- CSDN 插入代码测试,为什么没有显示呢
- 我们在建立Win32工程的时候,要选择是Win32控制台应用程序还是Win32项目,那么两者到底有什么区别呢?
- mybatis插入oracle数据库,如果用foreash就用select xx from dual;否则用insert into tablename(,,)values()时不要用foreach
- sqlite创建表成功,insert不报错,但没有数据插入