Advertisement
Guest User

Untitled

a guest
Oct 26th, 2010
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <functional>
  4. using namespace std;
  5.  
  6. template <class T>
  7. class minHeap {
  8. public:
  9.     minHeap();
  10.     minHeap(T arr[], int size, int maxSize);
  11.     T minElement();
  12.     void popMinElement();
  13.     void printHeap();
  14.     ~minHeap();
  15. private:
  16.     T *heap;
  17.     int h_size;
  18.     int h_maxSize;
  19. };
  20.  
  21. template <class T>
  22. minHeap<T>::minHeap()
  23. {
  24.     heap = NULL;
  25.     h_size = 0;
  26.     h_maxSize = 0;
  27. }
  28.  
  29. template <class T>
  30. minHeap<T>::minHeap(T arr[], int size, int maxSize)
  31. {
  32.     h_size = size;
  33.     h_maxSize = maxSize;
  34.     heap = new T[h_size];
  35.  
  36.     for(int i = 0; i < h_size; i++)
  37.         heap[i] = arr[i];
  38.  
  39.     make_heap(heap, heap+h_size, greater<T> ());
  40. }
  41.  
  42. template <class T>
  43. T minHeap<T>::minElement()
  44. {
  45.     return(heap[0]);
  46. }
  47.  
  48. template <class T>
  49. void minHeap<T>::popMinElement()
  50. {
  51.     pop_heap(heap,heap+h_size,greater<T> ());
  52.    
  53. }
  54.  
  55. template <class T>
  56. minHeap<T>::~minHeap()
  57. {
  58.    delete [] heap;
  59. }
  60.  
  61. template <class T>
  62. void minHeap<T>::printHeap()
  63. {
  64.     for(int i = 0; i < h_size; i++)
  65.         cout << heap[i] << endl;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement