为什么是运行时堆中使用动态存储器的分配的C-语言和风格 数据结构 这两个被称为"堆"?有些关系?

有帮助吗?

解决方案

高德纳说(计算机程序设计艺术,第三版,第1卷,第435。):

  

一些作者开始约1975调用可用存储空间的池“堆”。

他并没有说哪个作家,不给任何特定文件的引用,但它说,使用相关的“堆”一词,以优先级队列是这个词的传统意义上的。

其他提示

它们具有相同的名字,但他们真的是不相似(甚至是概念上)。内存堆被称为在你指洗衣篮为“衣服堆”相同的方式来堆。此名称是用来指明内存进行分配,并随意释放一个有些凌乱的地方。该数据结构(如在引用指出维基百科链路)是完全不同的。

在名称冲突是不幸的,但不是所有的神秘。 的是用来指一个桩,收集,组小,常用词等,为数据结构日期提前使用这个词(我敢肯定)池的名称内存。事实上,的将是后者更好的选择,在我看来。 暗指垂直结构(如桩),其与所述数据结构配合,而不是内存池。我们不认为一个内存池堆作为分层的,而数据背后结构的基本思想是保持最大的元素在堆的顶部(和子堆)。

堆的数据结构可以追溯到60年代中期;堆内存池,早期70年代。术语堆(意味着存储器池)通过 Wijngaarden 在讨论中使用的至少早在1971年大陵。

可能作为数据结构最早使用的发现在结果较早7年 威廉姆斯,J.W。J. 1964年 “算法232 - 堆排序”, ACM通讯 7(6):347-348

实际上,阅读有关的方式存储被分配(见好友块)提醒我的数据结构一个堆。

海事组织,它仅仅是一个事故/巧合,这两个完全不相关的事情有相同的名称。它喜欢 曲线图曲线图.

Q值。什么是堆? A.堆是对象的集合放置在彼此的顶部上。

回答你的问题: 这两种内存堆和二进制堆使用相同的概念你也知道。 数据被存储在作为写入程序,而二元堆相同顺序的存储器堆的形式是遵循在堆的形式以有序的方式存储的数据(数据在上面的相同的概念的数据结构其他的)。 让我知道你的想法在评论部分。

也许实现的第一存储器堆被堆结构管理?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top