堆:電腦科學中的雙面刃
術語「堆」在電腦科學中出現兩次,代表不同的概念,留下一些疑惑。一個概念是指 C 風格語言中用於動態記憶體分配的運行時堆,而另一個概念則表示用於優先權佇列的特定資料結構。那麼,為什麼術語上會出現這種重疊呢?
運行時堆
根據Donald Knuth 在《電腦程式設計的藝術》中的說法,「堆」一詞首先被應用1975 年左右,不同作者將其稱為運行時堆。這種用法源自於對物理堆的類比,即一堆可以隨時新增或刪除的項目。 觀點。在記憶體管理的上下文中,運行時堆充當發生動態記憶體分配的可用記憶體池。
優先權佇列堆
另外,術語「堆」 「已用於描述一種資料結構,該結構基於鍵將元素組織成部分有序二叉樹。儘管有共享的命名法,但運行時堆和優先權隊列堆之間沒有直接關係。
以上是堆:記憶體分配還是資料結構?兩個術語的故事。的詳細內容。更多資訊請關注PHP中文網其他相關文章!