×
データ構造とアルゴリズム

ヒープの解説(基本情報技術者シラバス用語)

ヒープとは

ヒープ(Heap)とは、木構造(特に完全二分木)を利用したデータ構造の一種で、「親ノードの値が、子ノードの値よりも常に大きい(または常に小さい)」という親子関係のルールを木全体で保っている状態のことです。このルールを守ることにより、木の一番上(根)には常に「最大値」または「最小値」のデータが配置されることになります。最大(小)値を素早く取り出す用途に適しています。

具体例

「優先度付きのタスク処理システム」において、最も優先度の高いタスク(最大値)をすぐに取り出したい場合にヒープが使われます。根にある最高優先度のタスクをポップし、残りで木を再構築します。

      [90] (最優先タスク)
      /    \
    [85]   [70]
    /  \
  [10] [35]
※どのノードを見ても 親 >= 子 の関係が成り立っています。

もう少し詳しく