Назад к вопросам
Intern
66
questionbank

В чем разница между структурами данных 'стек' и 'очередь'?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Стек (Stack) — это структура данных, которая работает по принципу LIFO (Last-In, First-Out). Последний добавленный элемент будет первым извлеченным.

Очередь (Queue) — это структура данных, которая работает по принципу FIFO (First-In, First-Out). Первый добавленный элемент будет первым извлеченным.

Основные операции и их реализация:

Операция Стек (Stack) Очередь (Queue)
Добавить push (в конец) enqueue (в конец)
Извлечь pop (из конца) dequeue (из начала)
Просмотреть peek (последний) peek (первый)
Пустой? is_empty is_empty
Размер size size

Примеры использования:

  • Стек: История браузера (кнопка "назад"), управление вызовами функций (стэк вызовов), синтаксический анализ.
  • Очередь: Планировщик задач в операционной системе, буферы в сетях, обработка запросов по порядку.

Реализация в Python:

# Стек: можно использовать список
stack = []
stack.append(1) # push
stack.append(2)
item = stack.pop() # pop

# Очередь: рекомендуется использовать collections.deque
from collections import deque
queue = deque()
queue.append(1) # enqueue
queue.append(2)
item = queue.popleft() # dequeue