Data structures 在红黑树中,一个红色节点只能有一个黑色子节点吗?

Data structures 在红黑树中,一个红色节点只能有一个黑色子节点吗?,data-structures,binary-tree,binary-search-tree,proof,red-black-tree,Data Structures,Binary Tree,Binary Search Tree,Proof,Red Black Tree,红黑树的规则: 每个节点不是红色就是黑色 根是黑色的 每片叶子(无)都是黑色的 如果节点为红色,则其两个子节点均为黑色 对于每个节点,从节点到后代叶的所有简单路径都包含相同数量的黑色节点 规则4提到红色节点需要两个黑色子节点,但如果只有一个子节点开始呢?是否有一个论证证明或反驳这一点? < P>不,红色节点不能有一个孩子,考虑以下情况: 1.如果它拥有的单个子节点是红色的,则不会发生这种情况,因为没有两个连续的节点可以是红色的。 2.如果子节点是黑色的…同样,这不会发生,因为这将违反“黑色高度规

红黑树的规则:

  • 每个节点不是红色就是黑色
  • 根是黑色的
  • 每片叶子(无)都是黑色的
  • 如果节点为红色,则其两个子节点均为黑色
  • 对于每个节点,从节点到后代叶的所有简单路径都包含相同数量的黑色节点

  • 规则4提到红色节点需要两个黑色子节点,但如果只有一个子节点开始呢?是否有一个论证证明或反驳这一点?

    < P>不,红色节点不能有一个孩子,考虑以下情况: 1.如果它拥有的单个子节点是红色的,则不会发生这种情况,因为没有两个连续的节点可以是红色的。
    2.如果子节点是黑色的…同样,这不会发生,因为这将违反“黑色高度规则”…这种情况将在路径中提供一个额外的黑色节点,该路径根据规则是不正确的。

    不可能重复此操作,这将违反规则(5)。有关详细信息,请参阅。