高度为h的节点数是多少?

时间:2014-09-09 13:09:06

标签: algorithm sorting tree heap binary-tree

有人可以解释用于查找高度为h的节点数的等式n/(2^(h+1))

使用3节点树:

 4    h=1
2 3   h=0

对于h = 0,即2个节点,等式给出3 /(2 ^(0 + 1))= 3/2 ^ 1 = 1.5

这是什么意思?这是正确的,不是应该给出高度为0的最大节点数的等式,即2,而不是1.5?

此等式来自算法简介 http://mitpress.mit.edu/books/introduction-algorithms

以下是关于等式的更多信息以及我发现它提到的位置: https://cs.stackexchange.com/questions/6405/maximum-number-of-nodes-with-height-h https://engineering.purdue.edu/~ee608/handouts/hw4s.pdf#5

2 个答案:

答案 0 :(得分:2)

你误读了这个公式。它不仅仅是 n / 2 h +1 ,它还是 n / 2 h +1 ⌉(没有&#34的方括号;脚和#34;是天花板功能的符号,它返回大于的最小整数它的论点)。

ceil(3/2^(0+1)) = ceil(3/2) 
                = ceil(1.5)
                = 2

答案 1 :(得分:0)

在完整的二叉树中(所有级别都满的树) 有ceil(n / 2)个叶子。所以树基本上就像 1 2 4 8 .... Ceil(n/2)。与完整的二叉树相同。
number nodes at height h = 2 * number nodes at height h-1。 这仅意味着要达到h级,您必须将h的叶子数除以2。因此,

number of nodes at height h in a full binary tree and maximum number of nodes at height h in complete binary tree(or almost complete binary tree) = ceil(n/2^(h+1)).