[prev] 12 [next]

Example Priority Queue Client

A program to use a priority Queue. Assume Item has been defined as

typedef struct item Item;
struct item{
    int priority;
    char * data;
};

#include <stdio.h>
#include "PriorityQueue.h"
int main(void)
{
   char buffer[MAX_INPUT];
   PriorityQ pq = initPriorityQ();
   Item   item;
   int priority;
   while(fgets(buffer,MAX_INPUT,stdin) != NULL){
        if(sscanf(buffer,"%d %[^\n]",&priority,buffer) != 2) break;
        if(enterPriorityQ(pq,newItem(priority,buffer)) == 0) break;
   }    

   while (!isEmptyPriorityQ(pq)) {
      item = leavePriorityQ(pq);
      printf("%s\n", item->data);
      destroyItem(item);
   }
   destroyPriorityQ(pq);
   return 0;
}