Назад к вопросам
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