ヒープとは、二分木で、要素の追加と最小値の取り出しができる構造
- 親は子供より必ず小さい(ルートが最小)
- 要素の追加(Push)は、最後に追加し、逆転がなくなるまで更新
- 最小値の取り出し(Pop)は、最後の要素で埋めて、逆転がなくなるまで更新
- 各操作はO(log n)
下記のクラスを完成させよ
public class Heap
{
private List data = new List();
public bool IsEmpty() { ... }
public void Push(int a) { ... }
public int Pop() { ... }
int Swap(int i, int j) { int t = data[i]; data[i] = data[j]; data[j] = t; return j; }
}