Data structures 为什么红黑树的叶节点总是为零,这意味着什么?
我不知道为什么我们需要NIL节点作为红黑树的叶子节点。有人能解释一下它的用途吗?NIL是一种特殊类型的节点,它表示其他树(如二进制搜索树和AVL树)中的叶节点 零节点有助于平衡黑色高度 当您删除一个节点时,黑色高度将立即传递给子节点,如果它没有子节点,则必须传递给某人。。。因此,NIL节点有助于实现这一点Data structures 为什么红黑树的叶节点总是为零,这意味着什么?,data-structures,red-black-tree,Data Structures,Red Black Tree,我不知道为什么我们需要NIL节点作为红黑树的叶子节点。有人能解释一下它的用途吗?NIL是一种特殊类型的节点,它表示其他树(如二进制搜索树和AVL树)中的叶节点 零节点有助于平衡黑色高度 当您删除一个节点时,黑色高度将立即传递给子节点,如果它没有子节点,则必须传递给某人。。。因此,NIL节点有助于实现这一点 另一种方法是,当您插入一个新节点时,nil node可以帮助我们确定我们所面临的情况(红叔叔或黑叔叔),有时红叔叔可能是nil node红黑树不需要nil节点。实际上,在该结构的典型实现中,N
另一种方法是,当您插入一个新节点时,nil node可以帮助我们确定我们所面临的情况(红叔叔或黑叔叔),有时红叔叔可能是nil node红黑树不需要nil节点。实际上,在该结构的典型实现中,NIL节点被完全省略以减少内存消耗。此外,我们可以修改红黑树的定义,以避免提及NIL节点,而不会丢失结构的任何基本特性: 将红黑树定义为具有以下附加属性的二叉搜索树:
取任意一棵具有NIL节点的红黑树,擦除NIL节点,它将满足上述定义。相反,取一棵满足上述定义的树,将黑色NIL节点放在每个子节点少于两个的非NIL节点下,这样它们就有两个子节点,根据标准定义,这将是一棵红黑树。谢谢!因此,它只是一个黑色的空节点,用于保持树的黑色高度。我说的对吗?主要是为了这个目的