Очередь с защитой от ошибок
Реализуйте структуру данных "очередь". Напишите программу, содержащую описание очереди и моделирующую работу очереди, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:
- push n
- Добавить в очередь число n (значение n задается после команды). Программа должна вывести
ok
. - pop
- Удалить из очереди первый элемент. Программа должна вывести его значение.
- front
- Программа должна вывести значение первого элемента, не удаляя его из очереди.
- size
- Программа должна вывести количество элементов в очереди.
- clear
- Программа должна очистить очередь и вывести
ok
. - exit
- Программа должна вывести
bye
и завершить работу.
Перед исполнением операций front
и pop
программа должна проверять, содержится ли в очереди хотя бы один элемент. Если во входных данных встречается операция front
или pop
, и при этом очередь пуста, то программа должна вместо числового значения вывести строку error
.
Запрещается использовать стандартный стек, а также стандартные динамические массивы с функциями типа append/push_back. Пишите на массиве фиксированной длины, с индексами-указателями.
Вводятся команды управления очередью, по одной на строке. Количество команд не превосходит миллиона, в каждый момент времени в очереди не более 200 элементов.
Требуется вывести протокол работы очереди, по одному сообщению на строке
push 1 front exit
ok 1 bye
size push 1 size push 2 size push 3 size exit
0 ok 1 ok 2 ok 3 bye