Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- #include <functional>
- using namespace std;
- template <class T>
- class minHeap {
- public:
- minHeap();
- minHeap(T arr[], int size, int maxSize);
- T minElement();
- void popMinElement();
- void printHeap();
- ~minHeap();
- private:
- T *heap;
- int h_size;
- int h_maxSize;
- };
- template <class T>
- minHeap<T>::minHeap()
- {
- heap = NULL;
- h_size = 0;
- h_maxSize = 0;
- }
- template <class T>
- minHeap<T>::minHeap(T arr[], int size, int maxSize)
- {
- h_size = size;
- h_maxSize = maxSize;
- heap = new T[h_size];
- for(int i = 0; i < h_size; i++)
- heap[i] = arr[i];
- make_heap(heap, heap+h_size, greater<T> ());
- }
- template <class T>
- T minHeap<T>::minElement()
- {
- return(heap[0]);
- }
- template <class T>
- void minHeap<T>::popMinElement()
- {
- pop_heap(heap,heap+h_size,greater<T> ());
- }
- template <class T>
- minHeap<T>::~minHeap()
- {
- delete [] heap;
- }
- template <class T>
- void minHeap<T>::printHeap()
- {
- for(int i = 0; i < h_size; i++)
- cout << heap[i] << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement