Estou ensinando CS2 ( Java and data structures
) e estou tendo dificuldades para encontrar bons exemplos para usar ao ensinar filas. As duas principais aplicações para as quais eu as uso são a multithreaded
passagem de mensagens (mas a programação do MT está fora do escopo do curso) e BFS-style algorithms
(e eu não estarei cobrindo gráficos até mais tarde no termo).
Eu também quero evitar exemplos planejados. A maioria das coisas em que penso, se eu realmente as resolvesse de um modo de thread único, usaria apenas uma lista em vez de uma fila. Eu costumo usar filas apenas quando o processamento e a descoberta são intercalados (por exemplo, pesquisa) ou em outros casos especiais, como buffers de comprimento limitado (por exemplo, mantendo os últimos N itens). Na medida do possível, estou tentando ensinar aos meus alunos boas maneiras de realmente fazer coisas em programas reais, não apenas brinquedos para exibir um recurso.
Alguma sugestão de bons algoritmos simples ou aplicativos de filas que eu possa usar como exemplos, mas que exijam um mínimo de outro conhecimento prévio?