00001 00051 #ifndef ABA_BPRIOQUEUE_H 00052 #define ABA_BPRIOQUEUE_H 00053 00054 #include "abacus/bheap.h" 00055 00056 template<class Type, class Key> 00057 class ABA_BPRIOQUEUE : public ABA_ABACUSROOT { 00058 public: 00059 00066 ABA_BPRIOQUEUE(ABA_GLOBAL *glob, int size); 00067 00073 void insert(Type elem, Key key); 00074 00083 int getMin(Type &min) const; 00084 00093 int getMinKey(Key &minKey) const; 00094 00104 int extractMin(Type &min); 00105 00108 void clear(); 00109 00112 int size() const; 00113 00116 int number() const; 00117 00125 void realloc(int newSize); 00126 00127 private: 00128 00131 ABA_GLOBAL *glob_; 00132 00135 ABA_BHEAP<Type, Key> heap_; 00136 }; 00137 00138 #include "abacus/bprioqueue.inc" 00139 00140 #endif // !ABA_BPRIOQUEUE_H 00141