红黑树中节点的最大高度
Maximum height of a node in a red-black tree
如果我们在红黑树中有一个节点,黑色高度为3,该节点允许的最大高度是多少?
红黑树的最大高度为2 * log(n+1)
所以如果节点数是 15
,那么最大高度应该是 2 * log(16) or 8
Interesting points about Red-Black Tree:
- red-black树的黑色高度是一个黑色节点的个数
从根节点到叶节点的路径。
- 叶节点也算作黑节点。所以,一棵 red-black 树
高度 h 有黑色高度 >= h/2.
- 具有 n 个节点的 red-black 树的高度为 h<= 2 log2(n + 1)。全部
叶子 (NIL) 是黑色的。
- 一个节点的黑色深度定义为黑色节点的个数
从根到那个节点,即黑人祖先的数量。
- 每个 red-black 树都是二叉树的特例。
Black Height of a Red-Black Tree :
- 黑色高度是从根到路径上黑色节点的个数
一片树叶。叶节点也算黑节点。从以上
属性3和4,我们可以推导出,一棵Red-Black高度为h的树有
black-height >= h/2.
Every Red Black Tree with n nodes has height <= 2Log2(n+1)
This can be proved using the following facts:
对于一般的二叉树,令k为上的最小节点数
所有根到 NULL 路径,然后 n >= 2k – 1(例如,如果 k 为 3,则 n 位于
至少 7).这个表达式也可以写成 k <= Log2(n+1).
来自 属性 4 of Red-Black trees and above claim, 我们可以说
Red-Black 有n个节点的树,有一条从根到叶的路径
at-most Log2(n+1) 个黑色节点。
从 属性 3 和 5 棵 Red-Black 树中,我们可以声称
Red-Black 树中黑色节点的数量至少为 ⌊ n/2 ⌋ 其中 n
是节点总数。
从以上几点,我们可以得出一个事实,红黑树
具有 n 个节点的高度 <= 2Log2(n+1)
为了最大化该节点的高度,您需要创建最长的向下路径,其中只有 3 个黑色节点(不包括起始节点)。正如在 red-black 树中,红色节点不能有红色子节点,您能做的最好的事情就是在这样的路径上交替颜色。此外,路径必须以黑色节点结束,因为所有 (NIL) 叶子都是黑色的。所以有 3 个黑色节点的最长路径是:
node (black, but not counted in "black height")
\
red
\
black #1
\
red
\
black #2
\
red
\
black #3/NIL
高度(=路径长度)为6,不能再长了。所以这就是黑高为3的节点的最大高度。一般情况下,节点的最大高度是其黑高的2倍。
如果我们在红黑树中有一个节点,黑色高度为3,该节点允许的最大高度是多少?
红黑树的最大高度为2 * log(n+1)
所以如果节点数是 15
,那么最大高度应该是 2 * log(16) or 8
Interesting points about Red-Black Tree:
- red-black树的黑色高度是一个黑色节点的个数 从根节点到叶节点的路径。
- 叶节点也算作黑节点。所以,一棵 red-black 树 高度 h 有黑色高度 >= h/2.
- 具有 n 个节点的 red-black 树的高度为 h<= 2 log2(n + 1)。全部 叶子 (NIL) 是黑色的。
- 一个节点的黑色深度定义为黑色节点的个数 从根到那个节点,即黑人祖先的数量。
- 每个 red-black 树都是二叉树的特例。
Black Height of a Red-Black Tree :
- 黑色高度是从根到路径上黑色节点的个数 一片树叶。叶节点也算黑节点。从以上 属性3和4,我们可以推导出,一棵Red-Black高度为h的树有 black-height >= h/2.
Every Red Black Tree with n nodes has height <= 2Log2(n+1) This can be proved using the following facts:
对于一般的二叉树,令k为上的最小节点数 所有根到 NULL 路径,然后 n >= 2k – 1(例如,如果 k 为 3,则 n 位于 至少 7).这个表达式也可以写成 k <= Log2(n+1).
来自 属性 4 of Red-Black trees and above claim, 我们可以说 Red-Black 有n个节点的树,有一条从根到叶的路径 at-most Log2(n+1) 个黑色节点。
从 属性 3 和 5 棵 Red-Black 树中,我们可以声称 Red-Black 树中黑色节点的数量至少为 ⌊ n/2 ⌋ 其中 n 是节点总数。
从以上几点,我们可以得出一个事实,红黑树 具有 n 个节点的高度 <= 2Log2(n+1)
为了最大化该节点的高度,您需要创建最长的向下路径,其中只有 3 个黑色节点(不包括起始节点)。正如在 red-black 树中,红色节点不能有红色子节点,您能做的最好的事情就是在这样的路径上交替颜色。此外,路径必须以黑色节点结束,因为所有 (NIL) 叶子都是黑色的。所以有 3 个黑色节点的最长路径是:
node (black, but not counted in "black height")
\
red
\
black #1
\
red
\
black #2
\
red
\
black #3/NIL
高度(=路径长度)为6,不能再长了。所以这就是黑高为3的节点的最大高度。一般情况下,节点的最大高度是其黑高的2倍。