Pro*_*a12 2 heap binary-tree data-structures
我有以下问题:
“树的高度是树的最长分支的长度。从高度的定义来看,一个有n个元素的堆的高度是多少?用你的答案给出一个清晰准确的解释。”
堆=二叉树
我知道完整二叉树的数量是 2^(n° of levels - 1)
到目前为止,我尝试了以下方法:
如果有 3 个堆(2 个完全二叉树和 1 个非完全二叉树),使得:
我可以说 B 的高度介于 A 和 C 的高度之间,B 的元素数量介于 2^(n° A - 1 级) 和 2^(n° C - 1 级) 之间。
但我不确定如何确定具有 n 个元素的堆的高度。
众所周知,堆是一棵完整的二叉树。
让我们看看一些堆:
我们可以看到:
如果堆有 1 个节点,它的高度将为 1
如果堆有 2 到 3 个节点,它的高度将为 2
如果堆有 4 到 7 个节点,它的高度将为 3
...
如果堆有从 2^i 到 2^(i+1) - 1 个节点,那么它的高度将为 i
请注意,只有当我们用节点填充某个级别并开始一个新的级别时,堆的高度才会增加。
这只发生在节点上:1, 2, 4, 8, 16, 32, ...
因此,具有 n 个节点的堆将具有高度 floor(log2(n)) + 1
| 归档时间: |
|
| 查看次数: |
10478 次 |
| 最近记录: |