0
Работа с очередью. 67 практическое задание C++
Мы продолжаем разрабатывать нашу систему управления очередью, которую мы создали в предыдущем модуле. Вам необходимо добавить новую функциональность: объединить две очереди вместе. В результате должна получиться новая очередь, в которой сначала идут элементы первой очереди, а затем элементы второй очереди. Дан класс Queue, перегрузите оператор +, чтобы код в main работал и успешно объединял две очереди. Уже стало немного не понятно. Может подскажете что можно сделать?
2 ответов
+ 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; 
        }
};



