00001 00027 #ifndef _PQUEUE_ 00028 #define _PQUEUE_ 00029 00030 #include "iterator.h" 00031 00035 typedef struct sPQueueNode 00036 { 00038 void *inf; 00040 struct sPQueueNode *next; 00041 }SPQueueNode; 00042 00046 typedef SPQueueNode* PQueueNode; 00047 00051 typedef struct sPQueue 00052 { 00054 int(*comp)(void*,void*); 00056 int size; 00058 PQueueNode head; 00059 }SPQueue; 00060 00064 typedef SPQueue* PQueue; 00065 00066 //############################################################################## 00067 00081 PQueue newPQueue(int(*comp)(void*,void*)); 00082 00093 int pqueueSetComp(PQueue pqueue,int(*comp)(void*,void*)); 00094 00103 void pqueueDelete(PQueue pqueue); 00104 00116 int pqueueInsert(PQueue pqueue,void *inf); 00117 00132 int pqueueRemove(PQueue pqueue,void** inf); 00133 00149 int pqueueConsult(PQueue pqueue,void **inf); 00150 00159 int pqueueSize(PQueue pqueue); 00160 00171 int pqueueMap(PQueue pqueue,void(*fun)(void*)); 00172 00183 Iterator pqueueIterator(PQueue pqueue); 00184 00185 #endif