[英]What is considered a leaf in red black trees?
我正在研究CLRS 的红黑树。 我有两个关于讨论红黑树属性的部分的问题。 来自CLRS的段落如下:
红黑树是满足以下红黑性质的二叉树:
每个节点要么是红色要么是黑色
根是黑色的
每片叶子(NIL)都是黑色的
如果一个节点是红色的,那么它的两个孩子都是黑色的
对于每个节点,从节点到后代叶子的所有简单路径都包含相同数量的黑色节点
首先,它说红黑树是二叉树。 为什么他们不说红黑树是二叉搜索树。 我认为红黑树的全部目的是保持搜索树中的平衡以确保logN操作。 其次,为什么红黑树的叶子是NIL ?
在常规的二叉树中,我们习惯于这样:
4
5 7
3 2 Nil Nil
Nil Nil Nil Nil
在这种情况下,3、2 和 7 是叶子。 为什么叶子在 CLRS 中被描述为 Nil's?
在书中,他们将红黑树称为二叉搜索树,就在本章的开头。
同样在本章中,它们表示标记为nil
的节点是实际节点(称为sentinels ),具有与普通节点相同的字段,但具有固定值“黑色”的color
字段(其他字段可以设置为任意值) ; 这些节点总是在树中显示为叶子。 所以它不同于通常的 BST,其中叶子是一个节点,其左子树和右子树都是nil
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.