#include #include "pqueue.h" #include "iqueue.h" //http://www.koders.com/c/fid7B82D8DDECE4EDC672F17D970458033C4079A615.aspx?s=queue #define INT_VALUE 1000 //typedef int (*ComparisonFunction)(void*, void*); int compare_int (const int *a, const int *b) { fprintf(stderr,"comparing %i %i \n",*a,*b); int temp = *a - *b; // return (a 0) return -1; else return 0; } int main (int argc, char* argv[]) { int val1 = 1; int val2 = 2; int val3 = 3; int val4 = 4; Queue q = QueueNew(); QueuePutOnPriority(q, &val1, INT_VALUE,(ComparisonFunction)compare_int); QueuePutOnPriority(q, &val3, INT_VALUE,(ComparisonFunction)compare_int); QueuePutOnPriority(q, &val2, INT_VALUE,(ComparisonFunction)compare_int); QueuePutOnPriority(q, &val4, INT_VALUE,(ComparisonFunction)compare_int); QueueItem qptr = q->head; while (qptr != NULL) { int* val = (int*) qptr->element; printf("value: %d\n", *val); qptr = qptr->next; } QueueIterator qiter = QueueIteratorNew(q, 1); while (qiter->currentItem != NULL) { int* val = (int*) qiter->currentItem->element; printf("iterator value: %d\n", *val); QueueIteratorAdvance(qiter); } }