me_edu
Алгоритмы и структуры данных: основыШаг 11 из 27 · 0% пройдено
Стеки, очереди и хеш-таблицы · Стеки, очереди и хеш-таблицы

Стек и очередь

Стек: pushpop сверху(LIFO)Очередь:enqueuedequeue сначала (FIFO)
Стек берёт с того же конца (LIFO), очередь — с другого (FIFO)

Поверх массивов и списков строят структуры с особыми правилами доступа.

Стек (stack) работает по принципу LIFO — «последним пришёл, первым ушёл», как стопка тарелок: кладёшь и берёшь только сверху. Две операции: push (положить наверх) и pop (снять верхний) — обе O(1).

stack = [] stack.push(1); stack.push(2) // [1, 2] stack.pop() // вернёт 2

Стек повсюду: кнопка «Назад» в браузере, отмена действий (Ctrl+Z), вызовы функций (call stack).

Очередь (queue) работает по принципу FIFO — «первым пришёл, первым ушёл», как живая очередь: добавляют в конец, берут из начала. Операции: enqueue (в конец) и dequeue (из начала).

Очереди используют там, где важен порядок обработки: задачи на печать, сообщения, обработка запросов сервером. Стек и очередь отличаются только тем, с какого конца берут элемент, но это меняет всё поведение.

Назад

Обсуждение

Войдите, чтобы участвовать в обсуждении.

Пока нет сообщений.