首页 > 编程知识 正文

队列的实现及应用,数据结构队列的应用场景

时间:2023-05-05 15:48:51 阅读:243593 作者:1494

队列的应用场景和介绍

特点:先进先出

英文:Queue

应用场景举例

银行排队:四个业务员,为排队的人的服务,每有一个业务员服务完成后,这时下一位被服务者从下面的队列中产生。

队列介绍

队列是一个有序列表,可以用数组和链表实现。数组顺序存储,链表链式存储。

遵循先入先出的原则,即先存入队列的数据,要先取出,后存入的要后取出。

用数组模拟示意图:rear代表尾部,front代表队首,MaxSize代表数组的最大容量,当数据加入的时候,队首不变,队尾增加,数据出去的时候,队首指针增加。

因为队列的输出、输入分别从前后端来处理,因此需要两个变量front和rear分别记录队列前后端的下标,front会随着数据输出而改变,而rear会随着数据的输入而改变。数据存入队列步骤分析

将尾指针往后移rear+1,当front==rear的时候,队列为空。

若为指针rear小于队列的最大下标maxSize-1,则将数据存入rear所指数组元素中,否则无法存入数据。当rear==maxSize-1,队列满。

front在队首前一个位置,rear除非队为空,正常队列(循环情况暂时不考虑),rear总是在队的最后一个元素。

实现代码

数组模拟队列基本功能

上述代码有缺陷,就是当队列不断出栈为空时,那么再往里面添加元素,不能再添加,因为front和rear都已经是数组最大位置。数组只能用一次,原因是数组没有取模,做成环形队列。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。