ホームページ >バックエンド開発 >C++ >ヒープ: メモリ割り当てまたはデータ構造? 2 つの用語の物語。

ヒープ: メモリ割り当てまたはデータ構造? 2 つの用語の物語。

Barbara Streisand
Barbara Streisandオリジナル
2024-11-10 06:25:02352ブラウズ

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

ヒープ: コンピューター サイエンスにおける両刃の用語

「ヒープ」という用語はコンピューター サイエンスで 2 回使用され、さまざまな概念を表します。戸惑う人もいるだろう。 1 つの概念は C スタイル言語での動的メモリ割り当てに使用されるランタイム ヒープを指し、もう 1 つは優先キューに使用される特定のデータ構造を指します。では、なぜ用語が重複しているのでしょうか?

ランタイム ヒープ

Donald Knuth によると、「The Art of Computer Programming」の中で、「ヒープ」という用語が最初に適用されました。この使用法は、いつでも追加または削除できる項目の山である物理ヒープへの類似から始まりました。メモリ管理のコンテキストでは、ランタイム ヒープは、動的なメモリ割り当てが行われる使用可能なメモリのプールとして機能します。

優先キュー ヒープ

これとは別に、「ヒープ」という用語が使用されます。 " は、キーに基づいて要素を部分的に順序付けされたバイナリ ツリーに編成するデータ構造を記述するために使用されています。このデータ構造は、優先度キューを実装する場合に特に役立ちます。優先度が最も高い (または最も低い) 要素を一定時間で取得できます。

Is There a Connection?

共通の命名法にもかかわらず、ランタイム ヒープと優先キュー ヒープの間には直接の関係はありません。前者はメモリの割り当てと管理に関連する概念であり、後者は特定の構造とプロパティを持つデータ構造です。

以上がヒープ: メモリ割り当てまたはデータ構造? 2 つの用語の物語。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。