#include "queue.h" Queue::Queue() //Default constructor { NumItems = 0; Front = 0; Rear = MaxQueue - 1; } void Queue::Insert(QElement El, int &Success) //Inserts El in a queue. //Pre : The queue has been created. //Post: If the queue is not full, increments Rear and inserts El. // Sets Success to indicate success or failure. { if (NumItems == MaxQueue) Success = False; //queue is full else { Rear = (Rear + 1) % MaxQueue; //increment rear Items[Rear] = El; NumItems = NumItems + 1; Success = True; } } void Queue::Remove(QElement &El, int &Success) //Removes element at front of queue and copies it to El. //Pre : The queue has been created. //Post: If the queue is not empty, El contains its first // element, Front is decremented, and Success is True; // otherwise Success is False. { if (NumItems == 0) Success = False; //queue is empty else { //Remove the element at the front of the queue El = Items[Front]; Front = (Front + 1) % MaxQueue; //increment Front NumItems = NumItems - 1; Success = True; } } void Queue::Retrieve(QElement &El, int &Success) //Copies value at front of queue to El without removing it. //Pre : The queue has been created. //Post: If the queue is not empty, El contains its first element // and Success is True; otherwise Success is False. { if (NumItems == 0) Success = False; //queue is empty else { //Retrieve item at front of queue El = Items[Front]; Success = True; } } int Queue::IsEmpty() //Test for empty queue. //Pre : Queue has been created. //Post: Returns True (1) if queue is empty and // False (0) otherwise. { return (NumItems == 0); } int Queue::IsFull() //Test for full queue. //Pre : Queue has been created. //Post: Returns True (1) if queue is full and // False (0) otherwise. { return (NumItems == MaxQueue); } int Queue::SizeOfQueue() //Returns number of elements in queue. { return NumItems; }