Answers:
一棵二叉树在非叶节点上有1个或2个子节点,在叶节点上有0个节点。假设一棵树中有节点,我们必须以它们仍然形成有效的二叉树的方式进行排列。
不用证明,我要说的是,要最大化高度,给定节点应该线性排列,即每个非叶节点应该只有一个子节点:
O 1
|
O 2
|
O 3
|
O 4
|
O 5
|
O 6
|
O 7
|
O 8
这里,根据节点数来计算高度关系的公式是直接的。如果是树的高度,则h = n − 1。
现在,如果我们尝试构建一个具有最小高度(总是可简化为完整的二叉树)的节点的二叉树,那么在进入下一层之前,我们必须在上层打包尽可能多的节点。因此,该树采用以下树的形式:
O
|1
|
O------+-----O
|2 |3
| |
O---+---O O---+----O
|4 |5 6 7
| |
O---+--O O
8 9 10
让我们从一个特殊的情况开始,。
我们知道
同样,很容易证明一个级别最多可以包含2个i节点。
在上述总和使用该结果,我们发现,对于每个电平,从0到米,存在一个对应的术语2 我- 1中的膨胀2 米 - 1。这意味着,一个完整的2 m - 1节点的二叉树被完全填充并具有高度h (2 m - 1 )= m - 1,其中h (n )=具有n个节点的完整二叉树的高度。
使用这个结果,,因为具有2 m − 1个节点的树已完全填充,因此具有(2 m − 1 )+ 1 = 2 m个节点的树必须适应下一级的额外节点米,由1从增加高度米- 1至米。
到现在为止,我们已经证明,ħ (2 米+ 1)= 米+ 1 以及,ħ (2 米+ 1 - 1 )= 米
因此,米≤ ħ (Ñ )< 米+ 1