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