/
SvetlanaGit
/
stack.py
Обзор
Документация
Войти
/
SvetlanaGit
/
stack.py
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
Stack.py
55 строк
2 KB
Svetlana
first_commit
25 июн 2026, 15:50
25 июн 2026, 15:50
063706e
Код
Авторство
О чём код?
class Stack: """Класс стека, реализующий принцип LIFO (последним пришёл — первым вышел).""" def __init__(self): self._items = [] def is_empty(self): """Проверка стека на пустоту. Возвращает True или False.""" return len(self._items) == 0 def push(self, item): """Добавляет новый элемент на вершину стека.""" self._items.append(item) def pop(self): """Удаляет верхний элемент стека и возвращает его.""" if self.is_empty(): raise IndexError("pop from empty stack") return self._items.pop() def peek(self): """Возвращает верхний элемент стека, но не удаляет его.""" if self.is_empty(): raise IndexError("peek from empty stack") return self._items[-1] def size(self): """Возвращает количество элементов в стеке.""" return len(self._items) # --- Тесты (запускаются только при прямом запуске файла) --- if __name__ == "__main__": stack = Stack() print("=== Проверка пустого стека ===") print("is_empty():", stack.is_empty()) # True print("size():", stack.size()) # 0 print("\n=== Добавляем элементы ===") stack.push(1) stack.push(2) stack.push(3) print("size():", stack.size()) # 3 print("peek():", stack.peek()) # 3 print("\n=== Удаляем элементы ===") print("pop():", stack.pop()) # 3 print("pop():", stack.pop()) # 2 print("size():", stack.size()) # 1 print("peek():", stack.peek()) # 1 print("\n=== Финальная проверка ===") print("pop():", stack.pop()) # 1 print("is_empty():", stack.is_empty()) # True