template<class T, class E>
MinHeap<T>::MinHeap(int maxHeapSize) {
maxHeapSize = (DefaultSize < sz) ? sz : DefaultSize;
heap = new E[maxHeapSize];
if (heap == NULL) {
cerr << "Allocation Error" << endl;
exit(1);
}
currentSize = 0;
};
template <class T, class E>
MinHeap<T>::MinHeap(E arr[], int n) {
maxHeapSize = (DefaultSize < n) ? n : DefaultSize;
heap = new E[maxHeapSize];
if (heap == NULL) {
cerr << "Allocation Error" << endl;
exit(1);
}
for (int i = 0; i < n; i ++) {
heap[i] = arr[i];
}
currentSize = n;
int currentPos = (currentSize - 2) / 2;
while (currentPos >= 0) {
siftDown(currentPos, currentSize - 1);
currentPos --;
}
};