ヒープ: コンピューター サイエンスにおける両刃の用語
「ヒープ」という用語はコンピューター サイエンスで 2 回使用され、さまざまな概念を表します。戸惑う人もいるだろう。 1 つの概念は C スタイル言語での動的メモリ割り当てに使用されるランタイム ヒープを指し、もう 1 つは優先キューに使用される特定のデータ構造を指します。では、なぜ用語が重複しているのでしょうか?
ランタイム ヒープ
Donald Knuth によると、「The Art of Computer Programming」の中で、「ヒープ」という用語が最初に適用されました。この使用法は、いつでも追加または削除できる項目の山である物理ヒープへの類似から始まりました。メモリ管理のコンテキストでは、ランタイム ヒープは、動的なメモリ割り当てが行われる使用可能なメモリのプールとして機能します。
優先キュー ヒープ
これとは別に、「ヒープ」という用語が使用されます。 " は、キーに基づいて要素を部分的に順序付けされたバイナリ ツリーに編成するデータ構造を記述するために使用されています。このデータ構造は、優先度キューを実装する場合に特に役立ちます。優先度が最も高い (または最も低い) 要素を一定時間で取得できます。
Is There a Connection?
共通の命名法にもかかわらず、ランタイム ヒープと優先キュー ヒープの間には直接の関係はありません。前者はメモリの割り当てと管理に関連する概念であり、後者は特定の構造とプロパティを持つデータ構造です。
以上がヒープ: メモリ割り当てまたはデータ構造? 2 つの用語の物語。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。