Please let me know if my answers are good. I think I have an issue with the two while loops for number 2. I know how to do it in one while loop, but not two while loops for question 2.
Write C++ code to copy elements from an old queue to new queue utilizing the enqueue() and dequeue() methods, thereby leaving the old queue empty. My answer:
#include “Queue.h” Queue oldQueue; Queue newQueue; void copyQueue() { int element; while (!oldQueue.isEmpty()) { oldQueue.dequeue(element); newQueue.enqueue(element); } }
Write C++ code to copy elements from an old queue to a new queue, preserving the old queue's contents. Utilize both enqueue() and dequeue() methods with two while loops. My answer:
Please let me know if my answers are good. I think I have an issue with the two while loops for number 2. I know how to do it in one while loop, but not two while loops for question 2. [list] [*]Write C++ code to copy elements from an old queue to new queue utilizing the enqueue() and dequeue() methods, thereby leaving the old queue empty. My answer: [/list] #include “Queue.h” Queue oldQueue; Queue newQueue; void copyQueue() { int element; while (!oldQueue.isEmpty()) { oldQueue.dequeue(element); newQueue.enqueue(element); } } [list] [*]Write C++ code to copy elements from an old queue to a new queue, preserving the old queue's contents. Utilize both enqueue() and dequeue() methods with two while loops. My answer: [/list] #include “Queue.h” Queue oldQueue; Queue newQueue; void copyQueue() { int element; while (!oldQueue.isEmpty()) { oldQueue.dequeue(element); newQueue.enqueue(element); } while (!newQueue.isEmpty()) { oldQueue.enqueue(element); } } //Queue.h for reference #pragma once #include using namespace std; struct NodeType { char value; NodeType* next; }; class Queue { private: NodeType* qFront; NodeType* qRear; public: Queue(); //~Queue(); bool isEmpty(); bool isFull(); void enqueue(char); void dequeue(char& x); void displayQueue(); }; Queue::Queue() { qFront = qRear = NULL; } void Queue::displayQueue() { NodeType* nodePtr = qFront; while (nodePtr != NULL) { cout value next; } } bool Queue::isEmpty() { if (qFront == NULL) return true; else return false; } bool Queue::isFull() { NodeType* ptr = new NodeType; if (ptr == NULL) return true; else { delete ptr; return false; } } void Queue::enqueue(char x) { if (isFull()) exit(1); NodeType* newNode = new NodeType; newNode->value = x; newNode->next = NULL; if (qFront == NULL) qFront = newNode; else qRear->next = newNode; qRear = newNode; } void Queue::dequeue(char &x) { if (isEmpty()) exit(1); x = qFront->value; NodeType* temp = qFront; qFront = qFront->next; delete temp; }