Queue 队列

1,队列是一种先进先出的数据结构。它一般只有入队和出队的两个操作,队列跟栈一样,也是一种操作受限的线性表数据结构。

2, 队列用于生产者消费者模型,或者资源数量一定的场景,比如线程池,数据库连接池,常见的变形有循环队列、阻塞队列、并发队列。它们在很多偏底层系统、框架、中间件的开发中,起着关键性的作用。比如高性能队列 Disruptor、Linux 环形缓存,都用到了循环并发队列;Java concurrent 并发包利用 ArrayBlockingQueue 来实现公平锁等,要排队处理等应用场景。

3. 实际上,对于大部分资源有限的场景,当没有空闲资源时,基本上都可以通过“队列”这种数据结构来实现请求排队。

4. LeetCode

a. 双端队列实现

https://leetcode-cn.com/problems/design-circular-deque/

b. 滑动窗口最大值, 暴力法,双向队列

https://leetcode-cn.com/problems/sliding-window-maximum/

posted @ 2020-08-21 09:20  lswtianliang  阅读(133)  评论(0编辑  收藏  举报