为什么所有 rb 树上的叶子都是空白的?

问题描述

我正在研究数据结构。关于红树和黑树,我有些不明白。他总是写关于这些树的以下特征。但是在所有示例中,叶子的值都为空。为什么这不在功能中。为什么“所有叶节点都是黑色和空白的”。不是吗?

Red/Black 属性:每个节点都是有颜色的,要么是红色要么是黑色。 根属性:根是黑色的。 叶子属性:每片叶子(NIL)都是黑色的。 红色属性:如果红色节点有子节点,则子节点始终为黑色。 深度属性:对于每个节点,从该节点到其任何后代叶子的任何简单路径都具有相同的黑色深度(黑色节点的数量)。

解决方法

所有节点是否都是无钥匙和黑色并不重要。

如果节点可以是任何颜色和/或空节点,则渐近性根本不会改变,因为红色子节点不能有红色父节点,并且所有内部节点都有关联的键。

所有路径的长度仍然最多是密钥总数的两倍,尽管现在最长路径为 2L+2,而不是与最短路径(长度 L)相比,最长路径为 2L .