为啥内存是以堆的形式组织的?
Posted
技术标签:
【中文标题】为啥内存是以堆的形式组织的?【英文标题】:Why is memory organized in the form of a heap?为什么内存是以堆的形式组织的? 【发布时间】:2015-05-01 16:07:07 【问题描述】:至少有一部分内存,用于由 new/malloc 创建的东西,以 Heap 的形式组织。我理解堆是一种结构,父节点总是大于或小于其子节点。它是最大堆或最小堆。
对于内存组织,构建堆的关键值是什么?换句话说,对于什么类型的信息或值,我们遵循堆构建规则(Max/Min heap)?
最后,使用堆模型组织内存有什么好处?有好的例子或理由吗?
【问题讨论】:
这能回答你的问题吗? What's the relationship between "a" heap and "the" heap? 【参考方案1】:堆,就内存而言,是为动态分配预留的内存。这与堆数据结构完全无关。
【讨论】:
我相信这部分内存“留作动态分配”一定是按照“堆数据结构”组织或实现的,否则我们不会称它为“堆”。【参考方案2】:不是。
您对内存管理(与堆栈)中的heap 的概念和数据结构heap 的概念感到困惑。它们不相关。具体来说,帮助内存不是用堆数据结构实现的。
【讨论】:
谢谢。但是如果这部分内存不是用“堆数据结构”来实现的,那么遵循什么数据结构呢?如果不遵循堆数据结构,为什么叫堆?【参考方案3】:您使用的heap 标签的描述回答了您的问题:
堆(数据结构)是按深度排序的树。堆也可以指为动态分配预留的进程内存。
【讨论】:
以上是关于为啥内存是以堆的形式组织的?的主要内容,如果未能解决你的问题,请参考以下文章