#include "queue.h" // subject to typos //------------------------------ constructor --------------------------------- Queue::Queue() { front = rear = 0; } //------------------------------ isEmpty ------------------------------------- // check to see if queue is empty bool Queue::isEmpty() const { return (front == rear); } //------------------------------ isFull -------------------------------------- // check to see if queue is empty bool Queue::isFull() const { return (front == (rear+1) % MAX); } //------------------------------ clear --------------------------------------- // check to see if queue is empty void Queue::clear() { // put loop here to delete all NodeData* in array if dynamic memory front = rear = 0; } //------------------------------ enqueue ------------------------------------- // insert item into rear of queue bool Queue::enqueue(NodeData* dataptr) { if (isFull()) return false; rear = (rear+1) % MAX; // put in at rear, may wrap around array[rear] = dataptr; return true; } //---------------------------------- dequeue --------------------------------- // remove item from front of queue bool Queue::dequeue(NodeData*& dataptr) { if (isEmpty()) return false; front = (front+1) % MAX; // take off from rear, may wrap around dataptr = array[front]; return true; } //---------------------------------- peek ------------------------------------ // return item at front of queue bool Queue::peek(NodeData*& dataptr) const { if (isEmpty()) return false; dataptr = array[(front+1) % MAX]; return true; }