假设我们将左高度(u)和右高度(u)表示节点u的左右子树的高度。
现在,如果我们有一个常数c> 0对于树T中的所有节点u,我们有
leftheight(u) ≤ rightheight(u) + c
这种树的高度可以说什么?是O(log n)还是什么?
此外,如果条件已更改为:
leftheight(u)−c ≤ rightheight(u) ≤ leftheight(u) + c
它会如何影响树的高度?
答案 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=10
和B=0
,A
leftheight(u)
可以 10 ,因此 11 , 11 树的高度为 11 ,即O(n)
。
同样,对于 IIndd部分,请设置C=10
和A=0
,因此不等式的格式为-10≤B≤10
,现在B=10
将满足此不等式,因此{ {1}} B
将 10 ,因此树的高度将变为 11 ,这又是rightheight(u)
。