TwiddleLab / Код / Структуры данных, которые видно
Очереди: первым пришёл, первым вышел
Что ты узнаешь
- Очередь это линия: элементы встают в конец и уходят из начала.
- Первым пришёл, первым вышел (FIFO): порядок выхода совпадает с порядком входа.
- В Python: q.append(x) встаёт в конец, q.pop(0) берёт начало.
- Стек или очередь это один и тот же список, обслуживаемый с разных концов. Этот один выбор решает, кто ждёт.
Как идёт урок
Миллион фанатов в одну секунду жмут «Купить». Кто получит билет первым?
Вот маленькая очередь за билетами. Жми «Дальше» и смотри, кого обслуживают.
Сделай честно. Передвинь окошко кассы.
Те же фанаты, тот же порядок событий. Двигается только окошко.
Когда окошко в конце, рядом с ним всегда самый новый фанат. В начале следующим идёт тот, кто ждёт дольше всех.
Стек или очередь?
Каждая коробка принимает элементы и выдаёт часть. Прочитай порядок выхода и назови коробку.
Честная очередь это очередь.
Очередь это линия: элементы встают в конец и уходят из начала.
Первым пришёл, первым вышел: FIFO. Стек это LIFO. Та же стопка элементов, обслуживаемая с другого конца.
В Python: q.append(x) встаёт в конец. q.pop(0) берёт элемент с индексом 0, начало.
Стек или очередь? Разложи по тому, как они работают.
Спроси: первым идёт самое новое или самое старое?
Очередь в Python.
Пройди по шагам. Перед каждым pop(0) нажми на того, кто уйдёт.
Ходите по очереди: Ana, Ben, Cy, Ana, Ben.
Собери цикл ходов. Игрок, чей ход закончился, идёт в конец очереди.
Чат-боты тоже ставят сообщения в очередь.
Загруженный сервер чат-бота отвечает на один запрос каждые 2 секунды, сначала старые. Ты номер 7 в его очереди.
Очередь обслуживает в порядке прихода. Перед тобой шесть запросов, поэтому твой ответ 7-й: 7 x 2 = 14 с.
Твой цикл ходов, с четырьмя игроками и одним изменением.
Одна версия использует твой pop(0), другая pop(). Нажми на честную, потом «Проверить».
append ставит игрока в конец. pop() снова берёт с конца, поэтому тот же игрок сразу выходит. pop(0) берёт из начала, поэтому игрок ждёт за всеми остальными.
Предыдущий урок: Стек: последним пришёл, первым ушёл · Следующий урок: Связные списки: цепочки стрелок · Часть курса: Структуры данных, которые видно
Уроки интерактивные и работают на JavaScript. Включи его, чтобы играть.