1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #pragma one #include<vector> #include<iostream> using namespace std;
template<typename Comparable> class BinaryHeap { public: explicit BinaryHeap(vector<Comparable>& items) :this->array(items.size()+10),this->currentSize(items.size()) { for (int i = 0; i < items.size(); i++) { this->array[i + 1] = items[i]; } this->buildHeap(); }
bool isEmpty(); const Comparable& findMin();
void insert(Comparable& x); void deleteMin(); void deleteMin(Comparable& minItem); void makeEmpty(); private: int currentSize; vector<Comparable> array; void buildHeap(); void percolateDown(int hole); void percolateUp(int hole); };
|