Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Структуры данных - лекция: стек и очередь

Anton
January 11, 2025

Структуры данных - лекция: стек и очередь

Лекция курса "Структуры данных"
Стек и очередь

- Последовательность однотипных элементов
- Очередь (Queue), примеры
- Стек (Stack), примеры
- Задания для самостоятельной работы

Anton

January 11, 2025
Tweet

More Decks by Anton

Other Decks in Education

Transcript

  1. Допустим, у нас есть последовательность однотипных элементов • Если их

    упорядочить, выстроив один за другим (можно пронумеровать, выстроив натуральный ряд), • У нас получится массив элементов или список элементов • Дальше встаёт вопрос, как мы будем элементы в эту последовательность добавлять и извлекать • Можно произвольным образом (по адресу), а можно ввести некоторое правило
  2. Очередь (Queue) • Не столько структура, сколько поведение • FIFO:

    first-in first-out • Поведение можно реализовать поверх массива или списка Операции: • Add (enqueue) — поместить элемент в очередь • Remove (dequeue) — извлечь элемент из очереди
  3. Жизненные ситуации • Живая очередь в магазине • Электронная очередь

    • Конвейер на производстве • Строительство юнитов на базе (RTS) • Очередь событий с устройств ввода (нажатие кнопок клавиатуры и клики мышки) • «Final destination» («Пункт назначения», 2000)
  4. Стек (Stack) • Не столько структура, сколько поведение • LIFO:

    last-in first-out • Поведение можно реализовать поверх массива или списка Операции: • Push — положить элемент на вершину стека • Pop — забрать элемент с вершины стека
  5. Жизненные ситуации • Стопка тетрадей на проверку • Стопка грязных

    тарелок • Магазин в пистолете • История изменений + ctrl+Z • «It follows» («Оно», 2014)
  6. Стек — сегмент памяти • Указатель стека (stack pointer) •

    Вызов функции: кадр стека добавляется на вершину • Завершение работы: последний добавленный кадр удаляется с вершины стека
  7. • Любой вариант на выбор • Плюс — предметная область

    (сценарий применения в прикладной системе автоматизации)
  8. Например: стек • Симулятор контейнера: добавить посылку в контейнер (телевизор,

    велосипед, цистерна), достать предмет из контейнера, посмотреть содержимое контейнера
  9. Например: очередь • Конвейер на заводе переработки мусора: • добавляем

    разные объекты (бутылка, банка, тряпка, гнилой арбуз и т. п.) — конвейер заполняется • Снимаем объекты с конвейера для переработки — автоматизированный модуль распознает объект и применяет к нему соответствующий инструмент • Операции: добавить объект, извлечь объект, посмотреть последовательность объектов на конвейере
  10. Например: очередь • Электронная очередь в МФЦ • Клиент +

    проблема (поменять паспорт, подать документы на льготу, ...) • Остальное — аналогично