0
Работа с очередью. 67 практическое задание C++
Мы продолжаем разрабатывать нашу систему управления очередью, которую мы создали в предыдущем модуле. Вам необходимо добавить новую функциональность: объединить две очереди вместе. В результате должна получиться новая очередь, в которой сначала идут элементы первой очереди, а затем элементы второй очереди. Дан класс Queue, перегрузите оператор +, чтобы код в main работал и успешно объединял две очереди. Уже стало немного не понятно. Может подскажете что можно сделать?
2 Answers
+ 1
#include <iostream>
using namespace std;
class Queue {
int size;
int* queue;
public:
Queue() {
size = 0;
queue = new int[100];
}
void add(int data) {
queue[size] = data;
size++;
}
void remove() {
if (size == 0) {
cout << "Queue is empty"<<endl;
return;
}
else {
for (int i = 0; i < size - 1; i++) {
queue[i] = queue[i + 1];
}
size--;
}
}
void print() {
if (size == 0) {
cout << "Queue is empty"<<endl;
return;
}
for (int i = 0; i < size; i++) {
cout<<queue[i]<<" <- ";
}
cout << endl;
}
//ваш код
};
int main() {
Queue q1;
q1.add(42); q1.add(2); q1.add(8); q1.add(1);
Queue q2;
q2.add(3); q2.add(66); q2.add(128); q2.add(5);
Queue q3 = q1+q2;
q3.print();
return 0;
}
0
Queue operator+(Queue &q){
Queue q3;
for(int i=0;i<size;i++){
q3.add(queue [i]);
}
for(int i=0;i<q.size ;i++){
q3.add(q.queue[i]);
}
return q3;
}
};