队列数据结构的应用
当不需要立即处理事物,但必须像广度优先搜索一样按优先顺序处理时使用队列。 Queue 的这个属性使其在以下场景中也很有用。
1)当一个资源在多个消费者之间共享时。示例包括 CPU 调度、磁盘调度。
2)当数据在两个进程之间异步传输时(数据的接收速率不一定与发送速率相同)。示例包括 IO 缓冲区、管道、文件 IO 等。
3) 在操作系统中:
a)信号量
b) FCFS(先来先服务)调度,例子:FIFO队列
c)打印机中的假脱机
d)用于键盘等设备的缓冲区
4)在网络中:
a)路由器/交换机中的队列
b)邮件队列
5)变化:(双端队列、优先队列、双端优先队列)
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。
有关 Queue 和 Stack 的更多详细应用,请参见此处。
参考:
http://introcs.cs.princeton.edu/43stack/