Что хранит. Хранит элементы в порядке поступления. Первым извлекается самый ранний добавленный элемент: FIFO.
Для чего используют. Подходит для очереди печати, заявок и фоновых заданий, которые нужно обслуживать по очереди.
q.Enqueue(x)
q.Dequeue()
q.Peek()
q.Count
foreach (int x in q)
Для примера нужны using System; и using System.Collections.Generic;. Код выполняется внутри Main.
using System;
using System.Collections.Generic;
Main
Queue<int> q = new Queue<int>(); q.Enqueue(10); q.Enqueue(20); Console.WriteLine(q.Peek()); // Только смотрим на первый. Console.WriteLine(q.Dequeue()); Console.WriteLine(q.Count);
Вывод:
10 10 1
Важно. Перед Peek и Dequeue проверьте Count > 0. Повторяющиеся значения — отдельные элементы очереди.
Документы печатаются в порядке добавления в очередь. Изначально очередь пуста. Один идентификатор может добавляться несколько раз: каждое добавление создаёт отдельное задание на печать.
ADD id
PEEK
PRINT
COUNT
Первая строка содержит q. Далее записаны q команд, по одной в строке.
Для каждой команды выведите ответ из таблицы. PEEK не удаляет документ. PRINT на пустой очереди ничего не меняет.
Не выводите приглашения к вводу и пояснения. Служебные слова в ответах пишите в указанном регистре.
1 ≤ q ≤ 100000; идентификатор id от 1 до 10⁹.
9 ADD 31 ADD 42 PEEK COUNT PRINT PEEK PRINT PRINT COUNT
OK OK 31 2 31 42 42 EMPTY 0
6 PEEK ADD 7 ADD 7 PRINT PRINT PRINT
EMPTY OK OK 7 7 EMPTY
3000 ms 256 Mb Правила оформления программ и список ошибок при автоматической проверке задач