Ich unterrichte CS2 ( Java and data structures
) und habe einige Schwierigkeiten, gute Beispiele für das Unterrichten von Warteschlangen zu finden. Die beiden Hauptanwendungen, für die ich sie verwende, sind das multithreaded
Weiterleiten von Nachrichten (aber die MT-Programmierung ist für den Kurs nicht möglich) und BFS-style algorithms
(und ich werde Diagramme erst später im Semester behandeln).
Ich möchte auch erfundene Beispiele vermeiden. Die meisten Dinge, an die ich denke, wenn ich sie tatsächlich in einem einzigen Thread lösen würde, würde ich nur eine Liste anstelle einer Warteschlange verwenden. Ich verwende Warteschlangen normalerweise nur, wenn Verarbeitung und Ermittlung verschachtelt sind (z. B. Suche) oder in anderen Sonderfällen wie längenbegrenzte Puffer (z. B. Beibehalten der letzten N Elemente). Soweit es praktisch ist, versuche ich meinen Schülern gute Möglichkeiten beizubringen, Dinge in echten Programmen zu tun, nicht nur Spielzeug, um eine Funktion zu demonstrieren.
Irgendwelche Vorschläge für gute, einfache Algorithmen oder Anwendungen von Warteschlangen, die ich als Beispiele verwenden kann, für die jedoch ein Minimum an anderen Vorkenntnissen erforderlich ist?