Memory 什么';是什么关系;a「;堆和;";堆

Memory 什么';是什么关系;a「;堆和;";堆,memory,heap,definition,Memory,Heap,Definition,堆是一种树数据结构,其中较高级别的树总是比较低级别的树包含更大(或更小,如果这样设置的话)的值。“堆”是程序可用于动态分配的一堆空闲RAM。它们都被称为“堆”,但这一个和另一个有什么关系呢?它们…有相同的名字!就这样。没什么。没有关系。他们都有相同的名字,仅此而已。 “heap”从来没有被安排为实际的堆数据结构。两者之间的唯一关系是“heap”的名称。请查看本网站,以获取内存的免费存储。来自answers.com的定义 堆:一堆东西放在或扔在一起,一个放在另一个上面:一堆脏抹布躺在角落里 这只是

堆是一种树数据结构,其中较高级别的树总是比较低级别的树包含更大(或更小,如果这样设置的话)的值。“堆”是程序可用于动态分配的一堆空闲RAM。它们都被称为“堆”,但这一个和另一个有什么关系呢?

它们…有相同的名字!就这样。

没什么。没有关系。

他们都有相同的名字,仅此而已。

“heap”从来没有被安排为实际的堆数据结构。

两者之间的唯一关系是“heap”的名称。

请查看本网站,以获取内存的免费存储。

来自answers.com的定义

堆:一堆东西放在或扔在一起,一个放在另一个上面:一堆脏抹布躺在角落里


这只是一个基本的命名,因为概念上是以无序的方式扔东西。正如其他海报所指出的,堆并没有组织为堆数据结构。这取决于系统库中的内存分配例程(例如,检查malloc如何工作)

老实说,没什么。我可以想象,heap这个词只是简单地与它的日常(非技术)用法结合起来,并作为合理的类比分别应用于这两个概念

在第一种情况下(树数据结构的含义),描述堆是最合适的,因为“更大”的对象被放置在树的更高位置(其中“更大”由任意键函数确定)——即,在较大对象的顶部有一种较小对象的堆积(或者在顶部有较大对象,取决于您的想法)。这就是我对它的理解;第一次将名称堆应用于此数据结构的人认为它在他心目中是一个合适的名称,而它只是被卡住了

在第二种情况下(RAM块),堆的名称可能更明显一些。“Heap”在这里只是“一个高度任意顺序的大型集合”,它在常见用法中的应用似乎与在动态分配的内存块中的应用一样好

在任何情况下,我都不会担心这两个概念之间抽象的隐喻相似性。完全分开对待他们,你在任何情况下都不会出错


编辑:基于树的数据结构似乎是从抽象代数中取出来的,这在计算机科学中相当普遍。但是,我不想确认或否认这一点…

堆(数据结构)是这样调用的,因为如果您绘制它,它看起来就像一个堆。堆(内存)被称为堆,因为它是以某种方式组织起来的,但并不完全。您在堆上积累数据,但其中可能有漏洞和不规则之处。就好像你把文件堆成了一堆。有时你从底部取下一个。这是一种堆的形式,即以某种方式组织起来的,但不是完全的。

使问题更加复杂:在某些系统(例如Microsoft Windows)上,内存分配意义上存在多个“堆”。“堆”仅仅是一堆。但是如果调用,您可以选择要从哪个内存分配中进行子分配。

“如果您绘制它,它看起来像一个堆”->“它看起来像一个堆”的谓词名词是什么意思