Branch data Line data Source code
1 : : #ifndef PRIORITYQUEUE_HPP
2 : : #define PRIORITYQUEUE_HPP
3 : : #include <vector>
4 : :
5 : : template <class Object>
6 : 0 : class PriorityQueue
7 : : {
8 : : public:
9 : : typedef bool (*CompareFunc)(Object &a, Object &b);
10 : : PriorityQueue(CompareFunc compare);
11 : : int size() const;
12 : : bool empty() const;
13 : :
14 : : const Object top() const;
15 : : void push(Object x);
16 : : void pop();
17 : :
18 : : int where_is_item(Object &a, int start_index=1, bool queue_is_valid=false);
19 : : bool update_item(Object &a, bool queue_is_valid=false);
20 : : bool update_item(int object_index);
21 : :
22 : : bool validate(int index=1);
23 : :
24 : : private:
25 : : std::vector<Object> theItems;
26 : : CompareFunc lessThanFunc;
27 : : };
28 : :
29 : : #include "PriorityQueue.cpp"
30 : :
31 : : #endif
32 : :
|