Member Functions for Queue ADT - Array Implementation


// *****************************************************************
// Implementation file Queuearr.cpp for the ADT queue.
// Circular array-based implementation. The array has indexes to the 
// front and back of the queue. A counter tracks the number of items 
// currently in the queue.
// *****************************************************************

#include "Queuearr.h"  // header file

Queue::Queue(): Front(0), Back(MAX_QUEUE-1), Count(0)
{ }  // end default constructor

int Queue::isEmpty()
{
   return (Count == 0);
}  // end QueueIsEmpty

int Queue::insert(queueItemType NewItem)
{
   int Success = (Count < MAX_QUEUE);
   if (Success)
   {  // queue is not full; insert item
      Back = (Back+1) % MAX_QUEUE;
      Items[Back] = NewItem;
      ++Count;
   }  // end if
   return Success;
}  // end insert

int Queue::del()
{
   int Success = !isEmpty();
   if (Success)
   {
   // queue is not empty; remove front
      Front = (Front+1) % MAX_QUEUE;
      --Count;
   }  // end if
   return Success;
}  // end del

int Queue::del(queueItemType& QueueFront)
{
   int Success = !isEmpty();
   if (Success)
   {
   // queue is not empty; retrieve and remove front
      QueueFront = Items[Front];
      Front = (Front+1) % MAX_QUEUE;
      --Count;
   }  // end if
   return Success;
}  // end del

int Queue::getFront(queueItemType& QueueFront)
{
   int Success = !isEmpty();
   if (Success)
   // queue is not empty; retrieve front
      QueueFront = Items[Front];
   return Success;
}  // end getFront

// End of implementation file


Email Me | Office Hours | My Home Page | Department Home | MCC Home Page