void insert(x) {
// insert element
array[heapSize] = x;
heapSize++;
// recover BT
siftUp(heapSize-1);
}
int extractMin() {
swap(array[0], array[heapSize-1]);
int hold = array[heapSize-1];
delete array[heapSize-1];
// recover BT
siftDown(0);
return hold;
}
int min() {
return array[0];
}