2015-10-18 65 views
2

如何求解包含n个节点的完整二叉树高度的以下等式?完整二叉树的高度

N = 2 ^(H + 1)-1

我得到了答案,

   n = 2^(h+1)-1 
n+(-2^(h+1)+1) = 2^(h+1)-1 + (-2^(h+1)+1) 
    n-2^(h+1)+1 = 0 
      h = ln(n+2)/ln(2) 

是:这个方程求解是正确的?如果不是,如何从n = 2 ^(h + 1)-1方程得到h?

回答

2
  1. 我们对完整的二叉树使用“完整”,所以它被称为完整的二叉树而不是完整的二叉树。
  2. 下面是h从公式推导N = 2 ^(H + 1)-1

    n = 2^(h+1)-1 
    
        n + 1 = 2^(h+1) 
    

以两侧的对数底2(LN 2)

 ln2(n+1) = ln2(2^(h+1)) 

     ln2(n+1) = h+1 

     ln2(n+1) - 1 = h 

 h = ln2(n+1) - 1 

我希望你说得对。答对了。

此外,我认为你不太熟悉对数的性质。我会尽力在这里为你解释。 ln2(8)被读作日志8 base 2. ln2(8)回答3.它是如何计算的? 2^3的答案是什么?它是8.所以我们可以说取得一个日志与取得权力是相反的。我们可以回答简单的日志问题,如ln3(9)=? ,因为3^2 = 9所以ln3(9)结果2.另一个例子ln10(100)= ?,我们知道10^2 = 100,所以ln10(100)= 2。你需要知道excel的log属性在数据结构和算法的过程中。它有很多帮助。

+2

也许你有一个微妙的错误。第一步将是'n + 1 = 2 ^(h + 1)'。现在你在等式的两边都应用log2,并且给出了你的结果 – lrleon

+0

是的,这是我错误跳过的步骤。谢谢。 (n + 1)= ln2(2 ^(h + 1))','ln2(n + 1)= h + 1','ln2(n + 1)-1 = h' @Irelon – Awais

+0

发生什么是我认为假设'log2(2 ^(h + 1)-1)=(h + 1) - 1'是棘手的,或许是不正确的。无论如何,我想知道你的论点 – lrleon

0

对于二叉树,高度仅由log2(n)给出。