// #include "heap.h" #include template BinaryHeap::BinaryHeap(int capacity): a(vector(capacity)),currentSize(0) {} // The "insert" methods assumes no possibility of overflow // Otherwise it is taken from p 216 of the text template void BinaryHeap::insert(const Comparable &x) { int hole=++currentSize; for (; hole>1 && x void BinaryHeap::deleteMin(Comparable &minItem){ minItem=a[1]; a[1]=a[currentSize--]; percolateDown(1); } // The "percolateDown" method is taken from the text. template void BinaryHeap::percolateDown(int hole) { int child; Comparable tmp=a[hole]; for (; hole * 2 <= currentSize; hole=child) { child=hole*2; if (child!=currentSize && a[child+1] void BinaryHeap::buildHeap() { for (int i=currentSize/2 ; i>0; i--) percolateDown(i); }