template<class Type >class MinHeap { public:
MinHeap (constint c = 10); ~MinHeap (); bool Add (constint p,const Type * data);
Node < Type >*Delete();
Type *DeleteData ();//Get the data pointer from the node of the minimum priority.
int DeleteBiggerThan (int minValueOfPriority);//Delete the node that priority is bigger than minValueOfPriority.
bool IsEmpty (); void print (); int Size ();//MinHeap's current size;
private: void FilterUp (constint start); void FilterDown (constint start,constint endOfMinHeap); int capacity; int size; std::vector< Node < Type >>arr; };