Sobes.tech
Назад к вопросам
Middle
3

В чем отличие между стеком, очередью и декой?

Компании, где спрашивали
Лига Цифровой ЭкономикиЛига Цифровой Экономики

Ответ от нейросети

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())  # удаление слева

Таким образом, выбор структуры зависит от требований к порядку обработки элементов.