有人可以解释用于查找高度为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
答案 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)).