我对 rb-trees 有疑问。根据维基百科,rb-tree 需要遵循以下内容:
- 一个节点要么是红色的,要么是黑色的。
- 根是黑色的。(这条规则在某些定义中使用,在其他定义中不使用。因为根总是可以从红色变为黑色,但不一定反之亦然,这条规则对分析几乎没有影响。)
- 所有的叶子都是黑色的。
- 每个红色节点的两个孩子都是黑色的。
- 从给定节点到其任何后代叶子的每条简单路径都包含相同数量的黑色节点。
众所周知,一个 rb-tree 需要平衡,并且高度为 O(log(n))。但是,如果我们插入一个不断增加的数字序列(1,2,3,4,5...),理论上我们会得到一棵看起来像列表的树,并且它的所有高度都为 O(n)节点黑色,这与上面提到的 rb-tree 属性并不矛盾。那么,我哪里错了??
谢谢。