Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please let me know if my answers are good. I think I have an issue with the two while loops. Question 2 requires two while

Please let me know if my answers are good. I think I have an issue with the two while loops. Question 2 requires two while loops.
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:
#include Queue.h
Queue oldQueue;
Queue newQueue;
void copyQueue(){
int element;
while (!oldQueue.isEmpty()){
oldQueue.dequeue(element);
newQueue.enqueue(element);
}
while (!newQueue.empty()){
newQueue.dequeue(element);
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 << nodePtr->value <<"";
nodePtr = nodePtr->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;
}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Time Series Databases New Ways To Store And Access Data

Authors: Ted Dunning, Ellen Friedman

1st Edition

1491914726, 978-1491914724

Students also viewed these Databases questions