Задача №62. Дек неограниченного размера
Реализуйте структуру данных "дек". Напишите программу, содержащую описание дека и моделирующую работу дека, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:
- push_front
- Добавить (положить) в начало дека новый элемент. Программа должна вывести
ok
. - push_back
- Добавить (положить) в конец дека новый элемент. Программа должна вывести
ok
. - pop_front
- Извлечь из дека первый элемент. Программа должна вывести его значение.
- pop_back
- Извлечь из дека последний элемент. Программа должна вывести его значение.
- front
- Узнать значение первого элемента (не удаляя его). Программа должна вывести его значение.
- back
- Узнать значение последнего элемента (не удаляя его). Программа должна вывести его значение.
- size
- Вывести количество элементов в деке.
- clear
- Очистить дек (удалить из него все элементы) и вывести
ok
. - exit
- Программа должна вывести
bye
и завершить работу.
pop_front
, pop_back
, front
, back
программа должна проверять, содержится ли в деке хотя бы один элемент. Если во входных данных встречается операция pop_front
, pop_back
, front
, back
, и при этом дек пуст, то программа должна вместо числового значения вывести строку error.
Входные данные
Вводятся команды управления деком, по одной на строке.
Выходные данные
Требуется вывести протокол работы дека, по одному сообщению на строке.
Примеры
Входные данные
push_back 1 back exit
Выходные данные
ok 1 bye
Входные данные
size push_back 1 size push_back 2 size push_front 3 size exit
Выходные данные
0 ok 1 ok 2 ok 3 bye
Сдать: для сдачи задач необходимо войти в систему