Класс "Стек".
Нужно написать класс "Стек".
В классе должны быть следующие методы:
- добавить элемент в очередь;
- убрать последний элемент;
- посмотреть вершину стека;
- проверить пуст ли стек;
- узнать размер стека;
- вывести стек на экран.
"""КЛАСС СТЕК"""
class Stack:
def __init__(self):
self.__data = list() # для стека выбран список
def push(self, item): # добавить элемент в очередь
self.__data.append(item)
def pop(self): # убрать последний элемент
if len(self.__data) > 0:
return self.__data.pop()
return None # вернуть None, если стек пуст
def peek(self): # посмотреть вершину стека
if len(self.__data) > 0:
return self.__data[-1]
return None # вернуть None, если стек пуст
def is_empty(self): # проверить пуст ли стек
return len(self.__data) == 0
def size(self): # узнать размер стека
return len(self.__data)
def show(self): # вывести стек в stdout
print("\nСтек:")
print("\n".join([str(i) for i in self.__data[::-1]]), "\n")
# создать объект класса "Stack"
a = Stack()
# добавляем или убираем элементы из очереди LIFO
a.push(1)
a.push(10)
a.push(100)
a.push(2)
a.pop()
# посмотрим вершину стека
print("\nВершина стека:", a.peek())
# проверить пуст ли стек
print("\nПуст ли стек?", a.is_empty())
# узнать размер стека
print("\nРазмер стека:", a.size())
# вывести стек
a.show()