Очередь (Queue) — это линейная структура данных, работающая по принципу FIFO (First-In, First-Out): первым вошедший элемент первым и выходит.
Основные операции:
- put/enqueue: добавление элемента в конец очереди.
- get/dequeue: удаление и возврат элемента из начала очереди.
- peek/front: просмотр элемента в начале очереди без удаления.
- is_empty: проверка, пуста ли очередь.
- size: получение текущего количества элементов.
Реализации в Python:
- list: Простая, но неэффективна при частых операциях
pop(0) (сдвиг элементов).
- collections.deque: Двусторонняя очередь, оптимизированная для добавления/удаления с обоих концов, эффективно используется как обычная очередь.
- queue.Queue: Потокобезопасная реализация, удобна для обмена данными между потоками.
Примеры использования collections.deque:
python
Примеры использования queue.Queue:
python
Применяется в задачах:
- Планирование задач (scheduler).
- FIFO-буферы.
- Алгоритмы обхода графов (BFS - Breadth-First Search).
- Обработка запросов (например, в веб-сервере).
- Потокобезопасное взаимодействие между потоками (с
queue.Queue).