Какие знаешь виды очередей

«Какие знаешь виды очередей» — вопрос из категории Брокеры сообщений, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В системах обработки данных распространены несколько видов очередей:

  1. FIFO (First In First Out) - классическая очередь, где первый пришедший элемент обрабатывается первым. Пример в Python:
from queue import Queue
q = Queue()
q.put(1)  # Первый вошедший
q.put(2)
q.get()   # Первый выйдет (вернет 1)
  1. LIFO (Last In First Out) - стек, где последний добавленный элемент обрабатывается первым. Пример:
from queue import LifoQueue
stack = LifoQueue()
stack.put(1)
stack.put(2)
stack.get()  # Вернет 2
  1. Приоритетная очередь - элементы обрабатываются по приоритету. Пример:
import heapq
heap = []
heapq.heappush(heap, (2, 'low'))
heapq.heappush(heap, (1, 'high'))
heapq.heappop(heap)  # Вернет (1, 'high')
  1. Круговая (кольцевая) очередь - циклическая структура с фиксированным размером.

  2. Очередь с двумя концами (Deque) - позволяет добавлять/удалять с обоих концов.