Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 为什么最后一级的';完全二叉树&x27;或a';二进制堆';部分是空的吗?有什么好的理由吗?_Algorithm_Data Structures_Binary Tree_Heap_Binary Heap - Fatal编程技术网

Algorithm 为什么最后一级的';完全二叉树&x27;或a';二进制堆';部分是空的吗?有什么好的理由吗?

Algorithm 为什么最后一级的';完全二叉树&x27;或a';二进制堆';部分是空的吗?有什么好的理由吗?,algorithm,data-structures,binary-tree,heap,binary-heap,Algorithm,Data Structures,Binary Tree,Heap,Binary Heap,完整二叉树的定义是“一个完整的二叉树是一个二叉树,在这个二叉树中,除了最后一个层次外,所有的节点都被完全填充,并且尽可能地离开。”我想知道为什么允许最后一个层次被部分填充。这在某些情况下有帮助吗 我试着在很多地方寻找这个问题的答案,但是我没有找到一个满意的答案。有人能帮我回答这个问题吗。非常感谢…这只是完整二叉树的定义。它不一定会帮助或阻碍任何事情,它只是它本来的样子 如果您对该主题感兴趣,请查找平衡二叉树。在这里,只有最低层没有完全填充是有意义的,因为这样可以确保树是平衡的,并且没有10个节点

完整二叉树的定义是“一个完整的二叉树是一个二叉树,在这个二叉树中,除了最后一个层次外,所有的节点都被完全填充,并且尽可能地离开。”我想知道为什么允许最后一个层次被部分填充。这在某些情况下有帮助吗


我试着在很多地方寻找这个问题的答案,但是我没有找到一个满意的答案。有人能帮我回答这个问题吗。非常感谢…

这只是完整二叉树的定义。它不一定会帮助或阻碍任何事情,它只是它本来的样子

如果您对该主题感兴趣,请查找平衡二叉树。在这里,只有最低层没有完全填充是有意义的,因为这样可以确保树是平衡的,并且没有10个节点深的左侧和1个节点深的右侧

让一棵树的所有级别都被完全填满,有助于保证快速搜索时间。如果所有级别都已完全填充,则您知道树的深度在所有可能路径上都相等,因此可以确保您在搜索速度上有一个良好的上限。在这种情况下,您可以通过
D=floor(lg(N))
计算所有可能叶节点路径的深度,其中N是节点数

现在,想象一下,如果你根本不需要填充级别。你可以有这样的怪物,其中一些元素的获取速度比其他元素快得多


这只是完整二叉树的定义。它不一定会帮助或阻碍任何事情,它只是它本来的样子

如果您对该主题感兴趣,请查找平衡二叉树。在这里,只有最低层没有完全填充是有意义的,因为这样可以确保树是平衡的,并且没有10个节点深的左侧和1个节点深的右侧

让一棵树的所有级别都被完全填满,有助于保证快速搜索时间。如果所有级别都已完全填充,则您知道树的深度在所有可能路径上都相等,因此可以确保您在搜索速度上有一个良好的上限。在这种情况下,您可以通过
D=floor(lg(N))
计算所有可能叶节点路径的深度,其中N是节点数

现在,想象一下,如果你根本不需要填充级别。你可以有这样的怪物,其中一些元素的获取速度比其他元素快得多


对这个问题的看法与另一个答案不同:如果所有级别都需要完全填充,那么对于某些
n
,您只能在树中使用
(2^n)-1
元素。即1、3、7、15。。。元素。通过允许最后一个级别部分填充,您可以拥有包含任意数量元素的二叉树。

对这个问题的理解与另一个答案不同:如果所有级别都需要完全填充,那么对于某些
n
,您只能拥有包含
(2^n)-1
元素的树。即1、3、7、15。。。元素。通过允许最后一级部分填充,您可以拥有包含任意数量元素的二叉树。

Yes。。似乎很合乎逻辑。。谢谢如果我们不允许填充较低级别,那么对于一定数量的节点,我们将无法拥有二进制堆/完整的二进制树!!对似乎很合乎逻辑。。谢谢如果我们不允许填充较低级别,那么对于一定数量的节点,我们将无法拥有二进制堆/完整的二进制树!!