Sto insegnando CS2 ( Java and data structures
), e ho qualche difficoltà a trovare buoni esempi da usare per insegnare le code. Le due principali applicazioni per cui le utilizzo sono il multithreaded
passaggio di messaggi (ma la programmazione MT non rientra nell'ambito del corso) e BFS-style algorithms
(e non tratterò i grafici fino a più avanti nel termine).
Voglio anche evitare esempi inventati. La maggior parte delle cose a cui penso, se davvero volessi risolverli in un modo a thread singolo, userei solo un elenco piuttosto che una coda. Tendo a utilizzare le code solo quando l'elaborazione e il rilevamento sono interlacciati (ad es. Ricerca), o in altri casi speciali come buffer a lunghezza limitata (ad es. Mantenimento degli ultimi N articoli). Nella misura del possibile, sto cercando di insegnare ai miei studenti buoni modi per fare effettivamente le cose in programmi reali, non solo giocattoli per mostrare una caratteristica.
Qualche suggerimento su algoritmi buoni e semplici o applicazioni di code che posso usare come esempi ma che richiedono un minimo di altre conoscenze precedenti?