如何求解以下方程以获得包含 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?
最佳答案
- 我们对完整二叉树使用“Complete”,因此它被称为完整二叉树而不是完整二叉树。
下面是由公式 n=2^(h+1)-1 对 h 的推导
n = 2^(h+1)-1 n + 1 = 2^(h+1)
取两边以 2 为底的对数 (ln2)
ln2(n+1) = ln2(2^(h+1))
ln2(n+1) = h+1
ln2(n+1) - 1 = h
或
h = ln2(n+1) - 1
希望你能答对。宾果游戏。
此外,我认为您对对数的属性不太熟悉。我将尝试在这里为您解释一下。 ln2(8) 读作 log 8 以 2 为底。ln2(8) 回答 3. 它是如何计算的? 2^3的答案是什么?是 8。所以我们可以说,获取日志与获取权力相反。我们可以回答简单的日志问题,例如 ln3(9) = ? ,因为 3^2 = 9 所以 ln3(9) 结果 2。另一个例子 ln10(100) = ?,我们知道 10^2 = 100,所以 ln10(100) = 2。你需要知道对数属性才能表现出色在数据结构和算法类(class)中。这很有帮助。
关于满二叉树的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194262/