数组实现的堆操作
1. 插入:
/*h->elements[0] is sentinel*/ /*最小堆*/ void insert(ElementType X, Queue h){ if(isFull(h)){ Error("Queue is full"); return; } for(i=++h->size;h->elements[i/2]>x;i/=2) { h->elements[i] = h->elements[i/2]; } h->elements[i]=x;//“插入排序“ }
2.删除