#include "queue.h"

Queue::Queue()
//Default constructor
{
  LinkList();
}

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, inserts El.
//      Sets Success to indicate success or failure.
{
  Success = True;
  InsertAtEnd(El);
}

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, and Success is True; otherwise Success is False.
{
  InitCursor();
  LinkList::Retrieve(El, Success);
  if (Success)
    DeleteNode();
}

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.
{
  InitCursor();
  LinkList::Retrieve(El, Success);
}

int Queue::IsFull()
//Test for full queue.
//Pre : Queue has been created.
//Post: Returns False (0).
{
  return(False);
}

int Queue::SizeOfQueue()
//Returns number of elements in queue.
{
  return GetSize();
}
