/*  File: mainq.C

    Main program that uses the queue ADT.
*/

#include <stdio.h>
#include <stdlib.h>
#include "stringitem.h"
#include "queue.h"

main() {

Queue *ToDo ;
data str ;
int length ;

   ToDo = new Queue ;

   ToDo->Enqueue("Grade Projects") ;
   ToDo->Enqueue("Write Web Lecture Notes") ;
   ToDo->Enqueue("Grade Exams") ;
   ToDo->Enqueue("Make Slides") ;

   str = ToDo->Front() ;
   printf("Front item: %s\n", str) ;
   free(str) ;

   ToDo->Enqueue("Faculty Meeting") ;
   ToDo->Enqueue("Letter of Recommendation") ;

   str = ToDo->Dequeue() ;
   printf("\nFinished item: %s\n", str) ;
   free(str) ;

   length = ToDo->Length() ;
   printf("\nThere are %d items left in the queue\n", length) ;

   printf("\nThe rest of the queue contains:\n") ;
   ToDo->Print() ;

   printf("\nEventually...\n") ;
   while( !ToDo->IsEmpty() ) {
     str = ToDo->Dequeue() ; 
     printf("Finished: %s\n", str) ;
     free(str) ;
   }

   delete ToDo ;
}
