Стек в программировании: принцип работы, основные операции, применение

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

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

Пример кода на языке программирования Python, реализующий структуру данных стек:


class Stack:
    def __init__(self):
        self.items = []
    def is_empty(self):
        return len(self.items) == 0
    def push(self, item):
        self.items.append(item)
    def pop(self):
        if not self.is_empty():
            return self.items.pop()
        else:
            raise IndexError("Stack is empty")
    def peek(self):
        if not self.is_empty():
            return self.items[-1]
        else:
            raise IndexError("Stack is empty")
    def size(self):
        return len(self.items)

В приведенном примере класс Stack реализует основные операции со стеком: создание стека (метод __init__), проверку на пустоту (метод is_empty), добавление элемента на вершину стека (метод push), удаление элемента с вершины стека (метод pop), получение элемента с вершины стека без его удаления (метод peek) и получение размера стека (метод size).

Например использования стека:


stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
print(stack.peek())  # Выведет 3
print(stack.pop())  # Выведет 3
print(stack.size())  # Выведет 2

В данном примере мы создаем стек, добавляем в него три элемента, затем получаем элемент с вершины стека без его удаления (peek), удаляем элемент с вершины стека (pop) и выводим на экран размер стека (size). Вывод программы будет следующим: 3, 3, 2.

Похожие вопросы на: "стек в программировании "

Try Except in Python: Handling Errors and Exceptions
А3 В3 – бизнес-инструменты и идеи для успешных проектов
JSON формат данных: основы и преимущества
Как работать с XML в Excel: советы и инструкции
Double Long: Investing for Long-Term Success
Java SDK Download
Transform Rotate CSS: Как создать эффект вращения элементов на сайте
jQuery Toggle - создание анимации без головной боли
Create Table If Not Exists
Unity Invoke: простой способ вызова функций в Unity