/
LeonBlue
/
Python_DataStructs_And_Algorithms
Обзор
Документация
Войти
/
LeonBlue
/
Python_DataStructs_And_Algorithms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
data_structures/stacks/stack.py
66 строк
2 KB
leonblue
Added single linked list implementation and
30 ноя 2025, 09:15
30 ноя 2025, 09:15
583b895
Код
Авторство
О чём код?
"""Реализация стека. Стек — это линейная структура данных, следующая принципу "Последний пришел - первый ушел" (LIFO). """ from typing import Any, Optional class Stack: """Реализация стека с использованием списка.""" def __init__(self) -> None: """Инициализация пустого стека.""" self._items: list[Any] = [] def push(self, item: Any) -> None: """Добавить элемент на вершину стека. Args: item: Элемент для добавления в стек. """ self._items.append(item) def pop(self) -> Optional[Any]: """Удалить и вернуть верхний элемент стека. Returns: Верхний элемент стека или None, если стек пуст. """ if self.is_empty(): return None return self._items.pop() def peek(self) -> Optional[Any]: """Вернуть верхний элемент без удаления. Returns: Верхний элемент стека или None, если стек пуст. """ if self.is_empty(): return None return self._items[-1] def is_empty(self) -> bool: """Проверить, пуст ли стек. Returns: True, если стек пуст, False в противном случае. """ return len(self._items) == 0 def size(self) -> int: """Вернуть количество элементов в стеке. Returns: Размер стека. """ return len(self._items) def __str__(self) -> str: """Вернуть строковое представление стека.""" return str(self._items) def __repr__(self) -> str: """Вернуть строковое представление стека.""" return f"Stack({self._items})"