Estoy enseñando CS2 ( Java and data structures
), y tengo algunas dificultades para encontrar buenos ejemplos para usar cuando enseño colas. Las dos aplicaciones principales para las que los uso son la multithreaded
transmisión de mensajes (pero la programación MT está fuera del alcance del curso) y BFS-style algorithms
(y no cubriré gráficos hasta más adelante en el término).
También quiero evitar ejemplos artificiales. La mayoría de las cosas en las que pienso, si realmente las resolviera de una sola hebra, usaría una lista en lugar de una cola. Tiendo a usar solo colas cuando el procesamiento y el descubrimiento están intercalados (por ejemplo, búsqueda), o en otros casos especiales, como los búferes de longitud limitada (por ejemplo, el mantenimiento de los últimos N elementos). En la medida de lo posible, estoy tratando de enseñarles a mis estudiantes buenas maneras de hacer cosas en programas reales, no solo juguetes para mostrar una característica.
¿Alguna sugerencia de algoritmos buenos o simples o aplicaciones de colas que pueda usar como ejemplos pero que requieran un mínimo de otro conocimiento previo?