什么被认为是红黑树的叶子?

时间:2015-11-08 00:35:49

标签: algorithm binary-search-tree red-black-tree clrs

我正在研究 CLRS 的红黑树。 我有两个关于讨论红黑树属性的部分的问题。 CLRS的内容如下:

红黑树是满足以下红黑属性的二叉树:

  1. 每个节点都是红色或黑色

  2. 根是黑色的

  3. 每片叶子(NIL)都是黑色的

  4. 如果节点为红色,则其子节点均为黑色

  5. 对于每个节点,从节点到后代叶子的所有简单路径都包含相同数量的黑色节点

  6. 首先,它说红黑树是二叉树。为什么他们没有说红黑树是二元搜索树。我认为红黑树的整个目的是在搜索树中保持平衡,以确保 logN 操作。第二,为什么红黑树上的叶子 NIL

    在常规二进制树中,我们已经习惯了这个:

                   4
             5            7
        3        2     Nil Nil
     Nil Nil  Nil Nil
    

    在这种情况下,3,2和7是叶子。为什么叶子被描述为CLRS中的Nil?

1 个答案:

答案 0 :(得分:2)

在书中,他们将红黑树称为二进制搜索树,它正好在本章的开头。

同样在本章中,他们指出标记为nil的节点是实际节点(称为 sentinels ),其字段与普通节点相同但具有color具有固定值“black”的字段(其他字段可以设置为任意值);这些节点总是在树中显示为叶子。所以它与通常的BST不同,其中 leaf 是一个节点,其左子树和右子树都是nil