// Created by Frank M. Carrano and Tim Henry. // Copyright (c) 2013 __Pearson Education__. All rights reserved. // PARITALLY COMPLETE. /** @file LinkedQueue.cpp */ #include "LinkedQueue.h" #include template bool LinkedQueue::enqueue(const ItemType& newEntry) { Node* newNodePtr = new Node(newEntry); // Insert the new node if (isEmpty()) frontPtr = newNodePtr; // Insertion into empty queue else backPtr->setNext(newNodePtr); // Insertion into nonempty queue backPtr = newNodePtr; // New node is at back return true; } // end enqueue template bool LinkedQueue::dequeue() { bool result = false; if (!isEmpty()) { // Queue is not empty; delete front Node* nodeToDeletePtr = frontPtr; if (frontPtr == backPtr) { // Special case: one node in queue frontPtr = nullptr; backPtr = nullptr; } else frontPtr = frontPtr->getNext(); // Return deleted node to system nodeToDeletePtr->setNext(nullptr); delete nodeToDeletePtr; nodeToDeletePtr = nullptr; result = true; } // end if return result; } // end dequeue