首頁 >後端開發 >C++ >堆:記憶體分配還是資料結構?兩個術語的故事。

堆:記憶體分配還是資料結構?兩個術語的故事。

Barbara Streisand
Barbara Streisand原創
2024-11-10 06:25:02350瀏覽

Heap: Memory Allocation or Data Structure? A Tale of Two Terms.

堆:電腦科學中的雙面刃

術語「堆」在電腦科學中出現兩次,代表不同的概念,留下一些疑惑。一個概念是指 C 風格語言中用於動態記憶體分配的運行時堆,而另一個概念則表示用於優先權佇列的特定資料結構。那麼,為什麼術語上會出現這種重疊呢?

運行時堆

根據Donald Knuth 在《電腦程式設計的藝術》中的說法,「堆」一詞首先被應用1975 年左右,不同作者將其稱為運行時堆。這種用法源自於對物理堆的類比,即一堆可以隨時新增或刪除的項目。 觀點。在記憶體管理的上下文中,運行時堆充當發生動態記憶體分配的可用記憶體池。

優先權佇列堆

另外,術語「堆」 「已用於描述一種資料結構,該結構基於鍵將元素組織成部分有序二叉樹。儘管有共享的命名法,但運行時堆和優先權隊列堆之間沒有直接關係。

以上是堆:記憶體分配還是資料結構?兩個術語的故事。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn