计算树的高度,提供左树高度和右树高度的条件

时间:2015-06-15 06:05:43

标签: algorithm

假设我们将左高度(u)和右高度(u)表示节点u的左右子树的高度。

现在,如果我们有一个常数c> 0对于树T中的所有节点u,我们有

leftheight(u) ≤ rightheight(u) + c

这种树的高度可以说什么?是O(log n)还是什么?

此外,如果条件已更改为:

leftheight(u)−c ≤ rightheight(u) ≤ leftheight(u) + c

它会如何影响树的高度?

2 个答案:

答案 0 :(得分:1)

要回答问题的第一部分,高度n。考虑一个具有u个节点的树,该树被退化为一个列表;对于每个节点 a \ b \ c ,左子树为空,每个节点(单叶除外)都有一个非空右子树,如下图所示。

leftheight(u) ≤ rightheight(u) + c

不平等

c

适用于每个常量n,但树的高度为{{1}}。

答案 1 :(得分:0)

你输入的表达式可以用数学形式重写为::
Ist Part :: A ≤ B + C
第二部分:: A - C ≤ B ≤ A + C
C > 0,即C可以是任意正数,因此答案 O(n)。 这是因为在 Ist Part 中,添加C=10B=0A leftheight(u)可以 10 ,因此 11 11 树的高度为 11 ,即O(n)。 同样,对于 IIndd部分,请设置C=10A=0,因此不等式的格式为-10≤B≤10,现在B=10将满足此不等式,因此{ {1}} B 10 ,因此树的高度将变为 11 ,这又是rightheight(u)