Хорошо ли я отреагировал на эту проблему с очередью?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Хорошо ли я отреагировал на эту проблему с очередью?

Сообщение Anonymous »


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:
#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; }

Источник: https://stackoverflow.com/questions/781 ... oblem-good
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»