我有一個rb-trees的問題。根據維基百科,rb-tree需要遵循以下內容:爲什麼RB-Tree不能成爲一個列表?
- 節點是紅色或黑色。
- 根部是黑色的。 (這條規則在一些定義,而不是別人使用。因爲根總是可以從紅色變成黑色,但並不一定反之亦然這個規則對分析影響不大。)
- 所有的葉子都是黑色的。
- 每個紅色節點的兩個孩子都是黑色的。
- 從給定節點到任何其後代的葉子每一個簡單路徑都包含相同數目的黑色節點。
正如我們所知,rb-tree需要平衡並且具有O(log(n))的高度。 但是,如果我們插入一個越來越一系列數字(1,2,3,4,5 ...),並在理論上,我們將得到一個樹看起來像一個名單,將有O(n)的高度與所有它的節點是黑色的,這與上面提到的rb-tree屬性不矛盾。那麼,我錯在哪裏?
謝謝。
爲一個很好的問題本的後代的算法考試:-) – 2010-04-26 12:18:52