红黑树如何与2-3-4棵树同构?

时间:2012-01-06 23:11:51

标签: algorithm data-structures b-tree red-black-tree 2-3-4-tree

我对红黑树和2-3-4树都有基本的了解,以及它们如何保持高度平衡,以确保最坏情况的操作是O(n logn)。

但是,我无法理解Wikipedia

中的这段文字
  

2-3-4树是红黑树的等轴测图,意味着它们是等效的数据结构。换句话说,对于每2-3-4棵树,至少存在一个红黑树,数据元素的顺序相同。此外,2-3-4树上的插入和删除操作会导致节点扩展,拆分和合并,这相当于红黑树中的颜色翻转和旋转。

我看不出操作是如何等效的。维基百科上的引用是否准确?如何看待操作是等效的?

1 个答案:

答案 0 :(得分:5)

rb-tree(红黑树)与2-3-4树不同构。因为如果我们尝试将这个3节点映射到rb树,2-3-4树中的3节点可以向左或向右倾斜。但llrb-tree(左倾红黑树)确实如此。

来自Robert Sedgewick的字词(在Introduction部分中):

In particular, the paper describes a way to maintain 
a correspondence between red-black trees and 2-3-4 trees, 
by interpreting red links as internal links in 3-nodes and 
4-nodes.  Since red links can lean either way in 3-nodes 
(and, for some implementations in 4-nodes), the correspondence is not necessarily 1-1

来自Robert Sedgewick的presentation的第29页和第30页。这是关于LLRB树的演示文稿。

wikipedia中的“红黑树”中的“类似于4阶B树”部分,它包含一个很好的图形。