概要 ヒープ(heap)とは、データ構造の一種で、木構造(ツリー構造)のうち、親要素が子要素より常に大きい(あるいは小さい)という条件を満たすもの。また、コンピュータプログラムが利用するメモリ領域の種類の一つで、実行時に任意のタイミングで確保や解放が可能なものをヒープ領域というが、これをヒープと略す場合がある。 データ構造のヒープ親要素が複数の子要素を持つ、階層状に枝分かれしていくデータ構造を木構造というが、ヒープはその特殊な場合の一つである。どの親要素も自分の子要素より常に大きいか等しい(あるいは、常に小さいか等しい)という制約を満たすように構成されたものを指す。子要素間の関係に制約はない。 次の要素への参照を表すポインタ的なデータがなくても単純な配列などで実装でき、根要素(ルート要素)が常に最も大きく(あるいは小さく)なるという特徴がある。 根要素を取り除いて残りの要素で木を再構築する