упорядочить, выстроив один за другим (можно пронумеровать, выстроив натуральный ряд), • У нас получится массив элементов или список элементов • Дальше встаёт вопрос, как мы будем элементы в эту последовательность добавлять и извлекать • Можно произвольным образом (по адресу), а можно ввести некоторое правило
first-in first-out • Поведение можно реализовать поверх массива или списка Операции: • Add (enqueue) — поместить элемент в очередь • Remove (dequeue) — извлечь элемент из очереди
• Конвейер на производстве • Строительство юнитов на базе (RTS) • Очередь событий с устройств ввода (нажатие кнопок клавиатуры и клики мышки) • «Final destination» («Пункт назначения», 2000)
last-in first-out • Поведение можно реализовать поверх массива или списка Операции: • Push — положить элемент на вершину стека • Pop — забрать элемент с вершины стека
клавиатуры записывает код символа нажатой клавиши в регистр • Операционная система постоянно проверяет значение регистра • Если со времени последнего обращения была нажата очередная клавиша, читает код символа из регистра • Выводит символ, извлеченный из регистра, на экран
клавиатуры помещает код символа нажатой клавиши в очередь • Операционная система постоянно проверяет содержимое очереди • Если очередь не пуста, берет элемент из головы очереди • Выводит символ, взятый из очереди, на экран
• Например, поверх массива (фиксированная ёмкость, т. е. максимальный размер) или списка (ёмкость увеличивается по мере необходимости) • (Список, в свою очередь, может быть связным или списком на основе массива — не важно)
просто размещать и извлекать элементы из соответствующих позиций контейнера • (Один и тот же контейнер может вести себя как стек или очередь или как контейнер произвольного доступа по мере необходимости)
разные объекты (бутылка, банка, тряпка, гнилой арбуз и т. п.) — конвейер заполняется • Снимаем объекты с конвейера для переработки — автоматизированный модуль распознает объект и применяет к нему соответствующий инструмент • Операции: добавить объект, извлечь объект, посмотреть последовательность объектов на конвейере