我正在教CS2(Java and data structures
),在教队列时要使用好的示例方面有些困难。我使用它们的两个主要应用程序是multithreaded
消息传递(但是MT编程不在本课程的范围之内),并且BFS-style algorithms
(并且我将在本学期的晚些时候再介绍图形)。
我也想避免人为的例子。我想到的大多数事情,如果实际上是要以单线程方式解决它们,我只会使用列表而不是队列。我倾向于仅在处理和发现被交错(例如,搜索)时或在其他特殊情况下使用队列,例如长度受限的缓冲区(例如,维护最后N个项目)。在实际的范围内,我正在尝试教我的学生好的方法,以实际的方式实际执行程序,而不仅仅是展示功能的玩具。
有什么好的,简单的算法建议或队列应用建议可以用作示例,但至少需要其他先验知识吗?