Data structures 为什么RB树的根是黑色的?

Data structures 为什么RB树的根是黑色的?,data-structures,tree,complexity-theory,binary-search-tree,red-black-tree,Data Structures,Tree,Complexity Theory,Binary Search Tree,Red Black Tree,如果插入新元素后,RB树的根变为红色,则其颜色将更改为黑色。为什么呢?在我看来,红树根也同样有效。这种颜色的改变是为了更有效地进行后续操作,还是有更多的原因?一种可能的解释来自树的高度。高度单位为θ(对数n) 非常清楚的是,至少在Omega(logn),因为RB树是BTs。然后O(logn)开始发挥作用 由于红色节点可以没有红色父节点,因此高度不超过一个外部节点的最大黑色深度(BD)的两倍(所有外部节点都具有相同的BD)。因此:“这条规则有时会被忽略。因为根总是可以从红色变为黑色,但不一定相反,

如果插入新元素后,RB树的根变为红色,则其颜色将更改为黑色。为什么呢?在我看来,红树根也同样有效。这种颜色的改变是为了更有效地进行后续操作,还是有更多的原因?

一种可能的解释来自树的高度。高度单位为θ(对数n)

非常清楚的是,至少在
Omega(logn)
,因为RB树是BTs。然后
O(logn)
开始发挥作用


由于红色节点可以没有红色父节点,因此高度不超过一个外部节点的最大黑色深度(BD)的两倍(所有外部节点都具有相同的BD)。因此
:“这条规则有时会被忽略。因为根总是可以从红色变为黑色,但不一定相反,这条规则对分析几乎没有影响。”顺便说一句,没有黑色根的RB树在CLR和其他一些地方被称为“松弛的红黑树”。同样的术语有时也用于“松弛”RB树定义的其他部分。最有趣的是,在后来重命名为红黑的中,根没有可分配的颜色。SBB中有两种类型的边,水平边和垂直边。随后引入的节点颜色对应于每个SBB边类型末尾的颜色;水平边指向红色节点,而垂直边指向黑色节点。根没有指向它的边缘(任何类型),因此没有颜色。这一切看起来像聊天室的对话,而不是一个问题。