Рубрики
Без рубрики

Python Stack

Stack Python Stack, Stack In Python, Реализация стека Python С помощью списка Append и POP-функции, программа стека в примере Python, пример класса стека Python

Автор оригинала: Pankaj Kumar.

В нашем предыдущем уроке мы узнали о обработке сигнала Python. В этом руководстве мы узнаем о стеке Python.

Python Stack

Начать с этого учебника, вы должны знать, что на первый взгляд. В основном стека Последнее снаружи структура данных. Это означает, что элемент, который вступил в последний в системе, будет сразу удален.

Например, скажем, у вас есть труба с одним открытым концом. И у вас есть несколько шаров, которые соответствуют просто в трубе. Поэтому, когда вы вставите эти шары в трубу, они будут сложены друг на друга. Однако, когда вы удалите шары, последний будет удален первым.

Python Stack Push

Ну, нет дополнительной структуры данных, как стек Python. Но в качестве стека является очень распространенной структурой данных, мы постараемся реализовать это.

Поэтому, если вы уже изучались в стеке, вы должны знать, что стек имеет две операции. Один из них толчок И другой – поп Отказ В этом разделе мы будем обсуждать протолкнуть операцию. Push-операция используется для добавления элементов в стек. Как мы будем использовать Список Python Как стек, мы можем использовать Добавить () Функция для толкания элементов в список.

stack = []  # initialize a list as stack
print('current stack :', stack)

# add items to the stack
for i in range(5):
    # push items into stack
    stack.append(i)
    print('current stack :', stack,'\tstack size :', len(stack))

Выход приведенного выше приведенного выше примера стека будет похоже на изображение.

Python Stack Pop.

Теперь нам нужно узнать, как поп-предметы из стека. Список Python имеет функцию с именем POP () Это удаляет последний элемент из списка. Но перед удалением вы должны проверить, будет ли стек пустым. Таким образом, если мы добавим POP-реализацию до предыдущего кода, то последний код будет как ниже.

stack = []  # initialize a list as stack
print('\ncurrent stack :', stack)

print('\nPush items to the stack')
# add items to the stack
for i in range(5):
    # push items into stack
    stack.append(i)
    print('current stack :', stack,'\tstack size :', len(stack))

print('\nPop items from te stack')
# now pop items from the stack
while len(stack) > 0:  # check if the stack is empty
    stack.pop()
    print('current stack :', stack, '\tstack size :', len(stack))

Итак, вывод будет таким же ниже.

Push items to the stack
current stack : [0]     stack size : 1
current stack : [0, 1]     stack size : 2
current stack : [0, 1, 2]     stack size : 3
current stack : [0, 1, 2, 3]     stack size : 4
current stack : [0, 1, 2, 3, 4]     stack size : 5

Pop items from te stack
current stack : [0, 1, 2, 3]     stack size : 4
current stack : [0, 1, 2]     stack size : 3
current stack : [0, 1]     stack size : 2
current stack : [0]     stack size : 1
current stack : []     stack size : 0

Реализация стека Python

Как вы видите, что мы можем использовать функции POPEND () и POP () для создания нашего класса реализации стека. Вот класс реализации стека на примере.

class Stack:
    stack = []  # empty list
    max_size = -1

    def __init__(self, size=-1):  # defining maximum size in the constructor
        self.max_size = size

    def push(self, item):
        if self.max_size == -1:  # if there is no limit in stack
            self.stack.append(item)
        elif len(self.stack) < self.max_size:  # if max limit not crossed
            self.stack.append(item)
        else:  # if max limit crossed
            print('Can\'t add item. Stack limit is :', self.max_size)
            raise RuntimeError

    def pop(self):
        if len(self.stack) > 0:
            temp = self.stack[-1]
            self.stack.pop()
            return temp
        else:
            print('stack is already empty.')
            raise IndexError

    def top(self):
        if len(self.stack) > 0:
            return self.stack[-1]  # returns the last item
        else:
            print('stack is already empty.')
            raise IndexError

stack = Stack()
stack.push(1)  # push item 1
stack.push(2)  # push item 2
print('Pop the last item :', stack.pop())  # pop the top item
print('Current top item is :', stack.top())  # current top item

Приведенный выше код будет выведен так

Pop the last item : 2
Current top item is : 1

Итак, вот и все о стеке Python. Если у вас есть путаница относительно реализации стека Python, пожалуйста, используйте окно комментариев.

Ссылка: Официальное руководство