整列2分木:ヒープ(heap)

ヒープ(heap)に対する操作

 挿入(Insert)

  1. 新たなノードをヒープの最後に追加する
  2. そこから上(ルート)に向かって所定の位置まで移動する(⇒図)
    ↑この操作をふるい上げ(sift-up)と呼ぶ

 ルートの削除(Delete)

  1. ルートのノードを削除する
  2. ヒープの最後のノードをルートに移動する
  3. そこから下(リーフ)に向かって所定の位置まで移動する(⇒図)
    ↑この操作をふるい下げ(sift-down)と呼ぶ

 削除(Delete)

  1. 指定されたノードを削除する(それがヒープの最後のノードだったなら、これで終り)
  2. ヒープの最後のノードをそこに移動する
  3. 削除したノードより大きい(or小さい)場合は、ふるい上げ(orふるい下げ)を行う

整列2分木:ヒープ(heap)の配列を使った実現

整列2分木:ヒープ(heap)の配列を使った実現(in C)