标签: data-structures binary-tree binary-search-tree proof red-black-tree
红黑树的规则:
规则4提到红色节点需要两个黑人孩子但是如果只有一个孩子可以开始呢?是否存在证明或反驳这一点的论据?
答案 0 :(得分:0)
不,红色节点不能有一个孩子,请考虑以下情况: - 1.如果单个孩子是红色的......这是不可能发生的,因为没有两个连续的节点可以是红色的。 2.如果孩子是黑人......再次发生这种情况是不可能的,因为这会违反“黑色高度规则”......这种情况会在路径中给出一个额外的黑色节点,根据规则。
答案 1 :(得分:0)
是的,有可能。在以下情况下,您可以拥有一个带有单个黑人孩子的红色节点而又不违反任何规则:
步骤1)插入:10、7、40、3、8、30、45、1、5、20、35、60、25。以下显示删除节点30之前的红黑树:
第2步)删除30(一个2度红色节点)。下面显示了删除节点30之后的红黑树:
假设替换策略至少在右侧子树中,则替换30的节点为35。
现在,当您确实替换节点时,我相信替换节点也将继承被替换节点的颜色。这意味着35是红色。
这将产生一棵树,其中35是一个带有单个黑人孩子的红色节点。