9.7队列(queue)

1.什么是队列?

队列(queue)也是一种访问受限的线性数据结构。它只允许从队列尾(rear)插入结点,称为入队列只允许从队列头(font)取出结点,称为出队列,如下图所示。因此,先进入队列的结点先出来,这就是所谓的“先进先出“(FIFO, First In, First Out)”

日常生活中,在食堂打饭排队、在银行排队办业务,都是队列的例子。在计算机里,操作系统为每个应用程序维护一个消息队列,应用程序接收到的消息存放在队列中,应用程序根据先来先处理的方式处理每个消息,这也是队列的应用

2.队列有什么用?

队列的特点是:结点出队列的顺序一定就是入队列的顺序如果要记录待处理数据的顺序,并严格按先后顺序来处理这些数据,就可能需要用到队列了

队列最经典的应用当属广度优先搜索(BFS),在BFS算法里,需要用队列来存储正在访问的这一层和待访问的下一层的顶点,以便扩展出新的顶点 

3.STL中的队列

要使用STL中的队列,必须包含头文件<queue>,并使用std命名空间

定义队列的方法:
queue<char> Q1;  //队列中的结点为字符型数据
queue<int> Q2;  //队列中的结点为整型数据
queue<pos> Q3;  //队列中的结点为pos变量(自定义数据类型)

queue常用的成员函数有:
①push:入队列,参数为需要入队列的结点
②pop:出队列,返回值为空
③front:取得队列头结点,返回值为队列头结点,该操作并不会使得队列头结点出队列
④empty:判断队列是否为空,返回值为bool型
⑤size:计算队列中结点的个数

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值