Как реализовать стек на питоне: простое руководство для начинающих

Для реализации стека на Python вы можете использовать класс и встроенные методы списка. Вот пример кода:


class Stack:
    def __init__(self):
        self.stack = []

    def push(self, item):
        self.stack.append(item)

    def pop(self):
        if not self.is_empty():
            return self.stack.pop()

    def is_empty(self):
        return len(self.stack) == 0

    def peek(self):
        if not self.is_empty():
            return self.stack[-1]

    def size(self):
        return len(self.stack)

# Создание экземпляра стека
stack = Stack()

# Добавление элементов в стек
stack.push(1)
stack.push(2)
stack.push(3)

# Удаление элементов из стека
item = stack.pop()

# Получение верхнего элемента стека без удаления
top_item = stack.peek()

# Получение размера стека
size = stack.size()

    

В приведенном выше коде создается класс Stack, который имеет методы push, pop, is_empty, peek и size. Метод push используется для добавления элемента в стек, метод pop - для удаления элемента из стека. Метод is_empty возвращает True, если стек пуст, иначе - False. Метод peek возвращает верхний элемент стека без его удаления, а метод size возвращает размер стека.

Детальный ответ

Как реализовать стек на питоне

Стек - это структура данных, которая работает по принципу "последним пришел - первым вышел" (Last-In-First-Out, LIFO). Другими словами, последний элемент, добавленный в стек, будет первым, который будет удален.

Давайте рассмотрим, как реализовать стек на языке программирования Python. Прежде всего, вам понадобится класс, представляющий стек, и некоторые методы для его работы.


class Stack:
    
    def __init__(self):
        self.stack = []
    
    def is_empty(self):
        return len(self.stack) == 0
        
    def push(self, item):
        self.stack.append(item)
        
    def pop(self):
        if self.is_empty():
            return "Стек пуст"
        return self.stack.pop()
            
    def peek(self):
        if self.is_empty():
            return "Стек пуст"
        return self.stack[-1]
        
    def size(self):
        return len(self.stack)
    

В приведенном выше коде, у нас есть класс Stack с несколькими методами:

  • is_empty(): проверяет, пуст ли стек
  • push(item): добавляет элемент в стек
  • pop(): удаляет и возвращает последний добавленный элемент
  • peek(): возвращает последний добавленный элемент, не удаляя его
  • size(): возвращает текущий размер стека

Давайте рассмотрим некоторые примеры использования нашей реализации стека:


# Создаем экземпляр стека
stack = Stack()

# Добавляем элементы в стек
stack.push(1)
stack.push(2)
stack.push(3)

# Печатаем стек
print("Стек:", stack.stack)

# Выводим размер стека
print("Размер стека:", stack.size())

# Проверяем пуст ли стек
print("Стек пуст?", stack.is_empty())

# Получаем последний добавленный элемент
print("Последний элемент:", stack.peek())

# Удаляем элемент из стека
print("Удаляем элемент:", stack.pop())

# Печатаем стек после удаления элемента
print("Стек после удаления:", stack.stack)
    

Результат выполнения этих операций будет следующим:


Стек: [1, 2, 3]
Размер стека: 3
Стек пуст? False
Последний элемент: 3
Удаляем элемент: 3
Стек после удаления: [1, 2]
    

Как видно из вывода, наша реализация стека работает должным образом. Мы можем добавлять элементы в стек, извлекать их и проверять его состояние.

Видео по теме

#14. Стек типа LIFO (Last-In-First-Out) | Алгоритмы на Python

Структуры данных(13 урок)(Стек. Реализация стека на python )

#17. Реализация стека на Python и C++ | Структуры данных

Похожие статьи:

Как избежать вывода ничего в Python

🐍 Как сделать перенос строки в питоне n | Простой и понятный способ!

Как остановить выполнение скрипта python в командной строке

Как реализовать стек на питоне: простое руководство для начинающих

Что означает input в Python и как его использовать?

Как увеличить время к времени в Python? ⏰🐍

Как решить дифференциальное уравнение в Python: пошаговое руководство с примерами и объяснениями