为什么将术语“堆”应用于不同的概念会产生歧义?
术语“堆”应用于两个不同的概念计算机科学:用于动态内存分配的运行时堆和称为堆的数据结构。这种双重用法可能会引发关于这两个概念之间是否存在任何潜在联系的问题。
根据 Donald Knuth 的说法,使用“堆”来表示内存分配池是在 1975 年左右出现的。但是,该术语已经在数据结构的背景下,它有更长的历史,它指的是一种树状排列,优先考虑最大值或最小值的提取。
Knuth 指出,“堆”在运行时内存中的应用源自这个词的传统意义上,指的是无序的堆积。在这种情况下,堆充当各种大小的空闲内存块的集合,类似于土堆或材料的堆积。
尽管有相同的词源,但“堆”的两个概念在实际功能上存在显着差异。运行时堆在动态内存分配中起着至关重要的作用,可以在运行时分配和释放内存。另一方面,数据结构堆是一种高度结构化的树,用于高效排序和基于优先级的操作。
因此,虽然“堆”一词的历史使用可能源于堆数据结构,这两个概念是分别发展的,具有不同的角色和实现。
以上是为什么'堆”在计算机科学中有两种不同的含义?的详细内容。更多信息请关注PHP中文网其他相关文章!