Junior
39
questionbank

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

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

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

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

Основные операции:

ОперацияСтек (Stack)Очередь (Queue)
Добавлениеpush() (обычно в конец)enqueue() (обычно в конец)
Удалениеpop() (из конца)dequeue() (из начала)
Просмотрpeek() или top() (элемент в конце)peek() или front() (элемент в начале)

Применение:

  • Стек: вызовы функций (стек вызовов), синтаксический анализ, откат действий (undo).
  • Очередь: планирование задач, управление буфером (например, ввод-вывод), обход графа в ширину (BFS).

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

Для стека можно использовать список, добавляя и удаляя элементы с конца:

python

Для очереди можно использовать collections.deque для эффективного добавления и удаления с обоих концов:

python