【发布时间】:2022-10-13 00:21:40
【问题描述】:
考虑具有 n 个内部节点的红黑树,其中 n 是偶数。最多有多少个可以是一个带有一个红色孩子的黑色节点?
A. n/2 B.n C. [lg(n+1]-1 D. [lg(n+1]) E.没有其他选择
在达到上述问题解的26个节点的红黑树中,树的最大高度是多少?假设具有一个节点的树的高度为 1。
A. 5 B. 6 C. 7 D. 8 E. 9
【问题讨论】:
标签: data-structures red-black-tree
考虑具有 n 个内部节点的红黑树,其中 n 是偶数。最多有多少个可以是一个带有一个红色孩子的黑色节点?
A. n/2 B.n C. [lg(n+1]-1 D. [lg(n+1]) E.没有其他选择
在达到上述问题解的26个节点的红黑树中,树的最大高度是多少?假设具有一个节点的树的高度为 1。
A. 5 B. 6 C. 7 D. 8 E. 9
【问题讨论】:
标签: data-structures red-black-tree
正确答案是 A,但这只是因为它问的是“最多”,而不是更明确的“有多少可以是红色的”。
有些树的内部节点数是偶数,根本不可能让每个黑色节点都有一个红色子节点。这方面的一个例子是 N 是四。然而,当 N 为 2 或 8 时,它是可能的。
当 N 为 2 时,以下树有效: 1B 2R
而对于 N=8:
6B
3R 7B
2B 4B 8R 1R 5R
基本上,它可以在任何树上工作,其中最极端的内部节点(即任何给定路径上离根最远的节点)都是黑色的,并且任何其他黑色节点通过添加一个红色子节点具有单个红色子节点到那些最极端的节点。
我的意思是把下面的 5 节点树从上面变成 8 节点树: 6B 3R 7B 2B 4B
【讨论】: