Перейти к основному содержимому
Informatik.uz
Глава 2. Структуры данных

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

Стек работает по принципу «последним пришёл — первым вышел», а очередь — «первым пришёл — первым вышел». Разберём их операции, реализацию в Python и области применения.

Тема 5 из 11Чтение: 2 минОбновлено: 27 октября 2026 г.
Список тем (5 из 11)

Структура данных — это способ хранения данных и выполнения операций над ними. Одна из простейших структур — стек: он работает по принципу «последним пришёл — первым вышел» (LIFO, Last In — First Out). Его можно сравнить со стопкой тарелок: новую тарелку кладут сверху и берут тоже только верхнюю. Основные операции: push — добавить наверх, pop — снять верхний элемент, peek — посмотреть, не снимая.

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

В Python стек можно сделать из обычного списка: s.append(x) добавляет элемент наверх, а s.pop() возвращает верхний элемент и удаляет его. Для очереди удобен deque из модуля collections: q.append(x) добавляет в конец, а q.popleft() берёт элемент из начала. Для очереди не стоит использовать a.pop(0) у обычного списка: он сдвигает все остальные элементы и на больших списках работает медленно.

Стек встречается повсюду: кнопка «Назад» в браузере, отмена действия в текстовом редакторе (Ctrl+Z), порядок вызовов функций (в том числе при рекурсии), проверка правильности скобок в выражении. Очередь применяют для документов, отправленных на печать, сетевых пакетов и порядка выполнения процессов в операционной системе.

Главное

  • Стек работает по принципу LIFO: последний добавленный элемент извлекается первым.
  • Очередь работает по принципу FIFO: первый добавленный элемент извлекается первым.
  • Операции стека: push, pop, peek; операции очереди: enqueue, dequeue.
  • В Python стек удобно делать на списке, а очередь — на collections.deque.
  • Стек применяют для отмены действий и проверки скобок, очередь — для выполнения задач по порядку.

Практические задания

  1. Добавьте в пустой стек по очереди элементы 1, 2, 3, затем дважды выполните pop; запишите, какие элементы извлечены и что осталось в стеке. Повторите то же с пустой очередью (enqueue, dequeue) и сравните результаты.
  2. Напишите на Python программу, которая с помощью стека проверяет правильность расстановки скобок: (()[]) — верно, ([)] — неверно.
  3. Напишите с помощью deque программу «очередь печати»: пользователь вводит названия документов, а программа «печатает» (выводит на экран) их в порядке ввода.

Вопросы для закрепления

Проверьте себя: сначала подумайте, потом откройте ответ.

  1. 1В чём главное отличие стека от очереди?
    В стеке первым выходит последний добавленный элемент (LIFO), а в очереди — первый добавленный (FIFO).
  2. 2На какую структуру похожа кнопка «Назад» в браузере и почему?
    На стек: к последней открытой странице возвращаются первой.
  3. 3Почему для очереди обычно берут `deque`, а не обычный список?
    В списке `pop(0)` сдвигает все элементы и работает медленно, а `deque` быстро работает с обоими концами.

Пройдено тем: 0 из 11

Войти и отметить
Informatika 11-sinf darsligi muqovasi
В учебникеИнформатика — 11 класс