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