Я преподаю CS2 ( Java and data structures
), и мне трудно найти хорошие примеры для обучения в очередях. Двумя основными приложениями, для которых я их использую, является multithreaded
передача сообщений (но программирование на МТ выходит за рамки курса) и BFS-style algorithms
(и я не буду охватывать графики до тех пор, пока не буду в терминах).
Я также хочу избежать надуманных примеров. Большинство вещей, о которых я думаю, если бы я действительно решил их однопоточным способом, я бы просто использовал список, а не очередь. Я склонен использовать очереди только тогда, когда обработка и обнаружение чередуются (например, поиск) или в других особых случаях, таких как буферы с ограниченной длиной (например, поддержание последних N элементов). Насколько это возможно, я пытаюсь научить своих учеников хорошим способам делать что-то в реальных программах, а не просто игрушкам, чтобы показать какую-то особенность.
Любые предложения хороших, простых алгоритмов или приложений очередей, которые я могу использовать в качестве примеров, но которые требуют минимум других предварительных знаний?