什么是队列?
2019-06-17 19:10
204 查看
类似于链表和堆栈,队列也是存储数据的结构。队列中数据进入队列的顺序很重要,一般来说,队列就是一群人或者事物按照排好的顺序等待接受服务或者处理。
定义:队列,又称为伫列(queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。
和堆栈一样的,也有两种操作,进队(EnQueue)和出队(DeQueue),对于空队列进行出队操作会造成下溢出(underflow),相应的堆满队列进行进队操作为发生上溢出。
队列如何使用?
服务台前的一排人解释了队列的概念。当我们要接受服务时只能排在队列的最后面,队列最前面的人也就是正在或则将要接受服务的人,当他走出队列时也就是接受服务了。
当队列正在接受服务时,我们就会慢慢的往前挪,因为服务过的人都出了队列。最终我们到达队首,出列接受服务。在我们需要维持到来的顾客的顺序时这种规则就很有用。
直接应用:
- 操作系统的调度作业(相同优先级的任务按顺序来到)。
- 模拟现实世界的排队(例如售票亭门口的队列)。
- 多通道程序设计。
- 异步数据传输(file I/O, pipes, sockets)。
- 呼叫中心顾客的等待时间。
- 超市现金储蓄量的决定。
间接应用:
- 辅助算法的数据结构。
- 其他数据结构的组成。
相关文章推荐
- 阿里Java面试题剖析:为什么使用消息队列?消息队列有什么优点和缺点?
- CRM中间件里的CSA队列有什么用
- CRM中间件里的CSA队列有什么用
- 什么是“堆”,"栈","堆栈","队列",它们的区别?
- Java中的队列都有哪些,有什么区别。
- 查看邮件队列里面什么的邮件多
- 到底什么是消息队列?Java中如何实现消息队列?
- 两个故事讲述什么是消息队列
- 什么是“堆”,"栈","堆栈","队列",它们的区别?
- IIS中的网站"最大并发连接数"和应用程序池的"队列长度"是什么意思
- 常用的资源分配策略有哪两种?在每一种策略中,资源请求队列的排序原则是什么?
- 从点击Button到弹出一个MessageBox, 背后发生了什么(每个UI线程都有一个ThreadInfo结构, 里面包含4个队列和一些标志位)
- 为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?
- 什么是优先级队列(priority queue)?
- 软件开发者面试百问-----队列和堆栈区别是什么?
- 当设计消息队列时我们关心什么
- 单调队列优化DP能到什么程度
- 什么是“堆”,"栈","堆栈","队列",它们的区别?
- 什么是“堆”,"栈","堆栈","队列",它们的区别?
- CRM中间件里的CSA队列有什么用