В чем отличие между стеком, очередью и декой?
Ответ от нейросети
sobes.tech AI
Стек, очередь и дека — это структуры данных с разными правилами добавления и удаления элементов:
-
Стек (stack) — работает по принципу LIFO (Last In, First Out). Последний добавленный элемент извлекается первым. Представьте стопку тарелок: берёшь верхнюю.
-
Очередь (queue) — работает по принципу FIFO (First In, First Out). Первый добавленный элемент извлекается первым. Как очередь в магазине: кто пришёл первым — обслуживается первым.
-
Дека (deque, double-ended queue) — двунаправленная очередь, элементы можно добавлять и удалять с обоих концов. Это гибрид стека и очереди.
В Python для реализации этих структур часто используют модуль collections:
from collections import deque
stack = [] # стек
stack.append(1)
stack.append(2)
print(stack.pop()) # 2
queue = deque() # очередь
queue.append(1)
queue.append(2)
print(queue.popleft()) # 1
deque_obj = deque()
dece_obj.append(1) # добавление справа
deque_obj.appendleft(2) # добавление слева
print(deque_obj.pop()) # удаление справа
print(deque_obj.popleft()) # удаление слева
Таким образом, выбор структуры зависит от требований к порядку обработки элементов.