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