00001 #ifndef _PRIORITYQUEUE2_H_ 00002 #define _PRIORITYQUEUE2_H_ 00003 00004 #define MAXDIST 1000 00005 #define RESERVE 64 00006 00007 #include <vector> 00008 #include <set> 00009 #include <queue> 00010 #include <assert.h> 00011 #include "point.h" 00012 00014 00019 class BucketPrioQueue { 00020 00021 public: 00023 00026 BucketPrioQueue(); 00028 bool empty(); 00030 void push(int prio, INTPOINT t); 00032 INTPOINT pop(); 00033 00034 private: 00035 00036 static void initSqrIndices(); 00037 static std::vector<int> sqrIndices; 00038 static int numBuckets; 00039 int count; 00040 int nextBucket; 00041 00042 std::vector<std::queue<INTPOINT> > buckets; 00043 }; 00044 00045 #endif