+ 2

Управление Очередью

Вы работаете над системой управления очередью и вам нужно создать класс для хранения данных очереди, которыми являются идентификаторы клиентов (целые числа). Вы создаете класс Queue, который имеет атрибут size и массив для хранения данных очереди. У класса есть метод remove() для удаления переднего элемента очереди и метод print() для вывода очереди. Вам нужно создать метод add() для класса Queue, который будет принимать элемент и добавлять его в конец очереди. Код должен быть полностью рабочим, чтобы объявление Очереди и манипуляционный код в main() работали. Решение: void add(){} Объясните какой элемент он должен принимать?

19th Jan 2021, 8:04 PM
Алексей
7 Answers
+ 5
Принимает целое число, записывает его в динамический массив *queue (в очередь) под индексом size. Увеличивает этот индекс на 1 при добавлении нового елемента в очередь. То бишь, если ты встал в очередь из 2-х, ты 3-й, да и очередь уже из 3-х.. void add(int a){ queue[size]=a; size++; } Вобще тут еще не хватает деструктора, который бы удалял этот массив, но условие задачи просто написать функцию добавления в очередь...
19th Jan 2021, 11:36 PM
sa_ha_r0k
sa_ha_r0k - avatar
+ 6
Ваш класс очереди активен и работает в компании по обслуживанию клиентов. Компания открывает новый филиал и просит вас сделать для них еще одну версию Очереди. Единственное отличие - это способ отображения очереди: каждое число на новой строке. Вы решили создать новый класс с именем Queue2 , который является производным от класса Queue и переопределяет метод print (), выводя каждый элемент очереди на новую строку.
14th May 2021, 12:47 AM
Михаил Бельков
Михаил Бельков - avatar
+ 5
//ваш код Queue operator+(Queue &obj) { Queue res; for(int i=0;i<this->size;i++) { res.add(this->queue[i]); } for(int i=0;i<obj.size;i++) { res.add(obj.queue[i]); } return res; }
15th Jun 2022, 11:23 AM
Евгеній Плотников
Евгеній Плотников - avatar
+ 3
#include <iostream> using namespace std; class Queue { int size; int* queue; public: Queue() { size = 0; queue = new int[100]; } 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 add(int rt){ queue [size]=rt; size++; return queue[size] ; } }; int main() { Queue q; q.add(42); q.add(2); q.add(8); q.add(1); q.print(); q.remove(); q.add(128); q.print(); q.remove(); q.remove(); q.print(); return 0; }
1st Dec 2021, 10:59 PM
Vitali Korchicki
Vitali Korchicki - avatar
0
Спс все работает!
25th Jan 2021, 7:11 PM
Алексей
0
Обявляем функцию add в классе Queue void add(int o){ if(o!=0){ //проверяем пришо ли что то queue [size]=o; //используя переменную size заполняем массив } size++; // увеличиваем переменную что бы понимать сколько массивов заполнено и для заполнения следючшей ячейки массива }
5th Mar 2024, 5:29 AM
РАДЖАН ЖУМАНОВИЧ
РАДЖАН ЖУМАНОВИЧ - avatar
- 2
#include <iostream> using namespace std; class Queue { int size; int* queue; public: Queue() { size = 0; queue = new int[100]; } 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; } //ваш код void add() }; int main() { Queue q; q.add(42); q.add(2); q.add(8); q.add(1); q.print(); q.remove(); q.add(128); q.print(); q.remove(); q.remove(); q.print(
19th Jan 2021, 8:09 PM
Алексей