#ifndef queue_cxx #define queue_cxx #include "listNode2.h" #include "queue.h" typedef bool boolean ; template queue::queue(void){ front = NULL ; }//end of constructor template queue::~queue(void){ node * temp = front ; while(front != NULL){ delete temp ; temp = front ; front = front->link() ; }//while }//end of destructor template boolean queue::isEmpty(void){ return front == NULL ; }//end of isEmpty template void queue::enqueue(const T & item){ if(front == NULL){ front = new node(item, NULL) ; }else{ node * prev = front ; while(prev->link() != NULL) prev = prev->link() ; node * new_node = new node(item,NULL) ; prev->set_link(new_node) ; }//else }//end of enqueue template T queue::dequeue(void){ if(front == NULL){ cerr << "Tried to dequeue from an empty" << " queue." << endl ; exit(EXIT_FAILURE) ; }else{ node * temp = front ; T data = temp->data() ; front = front->link() ; delete temp ; return data ; }//else }//end of dequeue #endif