Учебники

Python — стек

В словаре английского языка стек слов означает расположение объектов поверх другого. Таким же образом выделяется память в этой структуре данных. Он хранит элементы данных таким же образом, как куча тарелок хранятся одна над другой на кухне. Таким образом, стек данных strcuture позволяет выполнять операции на одном конце, которые можно назвать вершиной стека. Мы можем добавлять элементы или удалять элементы только из этого стека.

В стеке элемент, вставленный последним в последовательности, выйдет первым, так как мы можем удалить его только из верхней части стека. Такая функция известна как функция «Последний пришел первым» (LIFO). Операции добавления и удаления элементов известны как PUSH и POP . В следующей программе мы реализуем его как функции добавления и удаления. Мы объявляем пустой список и используем методы append () и pop () для добавления и удаления элементов данных.

Толкать в стек

class Stack:

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

    def add(self, dataval):
# Use list append method to add element
        if dataval not in self.stack:
            self.stack.append(dataval)
            return True
        else:
            return False
# Use peek to look at the top of the stack

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

AStack = Stack()
AStack.add("Mon")
AStack.add("Tue")
AStack.peek()
print(AStack.peek())
AStack.add("Wed")
AStack.add("Thu")
print(AStack.peek())

Когда приведенный выше код выполняется, он дает следующий результат:

Tue
Thu

ПОП из стека

Поскольку мы знаем, что мы можем удалить из стека только слишком большой объем данных, мы реализуем программу на Python, которая это делает. Функция удаления в следующей программе возвращает самый верхний элемент. мы проверяем верхний элемент, сначала вычисляя размер стека, а затем используем встроенный метод pop (), чтобы определить самый верхний элемент.


class Stack:

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

    def add(self, dataval):
# Use list append method to add element
        if dataval not in self.stack:
            self.stack.append(dataval)
            return True
        else:
            return False
        
# Use list pop method to remove element
    def remove(self):
        if len(self.stack) <= 0:
            return ("No element in the Stack")
        else:
            return self.stack.pop()

AStack = Stack()
AStack.add("Mon")
AStack.add("Tue")
AStack.add("Wed")
AStack.add("Thu")
print(AStack.remove())
print(AStack.remove())

Когда приведенный выше код выполняется, он дает следующий результат: