队列

1队列的概念

队列是一种特殊的线性表, 它只允许在表的前端进行删除()操作,而在表的后端进行插入操作
队列中元素都遵循"先进先出"(First In First Out)的规则.
常规操作有:

函数功能
front()取队列第一个元素
push(X)将X入队
pop()弹出队首元素
empty()判断队列是否为空(空为真)
size()返回队列中元素个数

栈与队列是非常相似的, 它们的规则不同(栈是 FILO, 队列是 FIFO).

栈是什么?

2队列的应用

队列主要的作用就是模拟了吧(作者认为的), 用一道题来说明一下吧.

卡片游戏
题目: 桌子上有一叠牌,从第一张牌(即位于顶面的牌)开始从上到下依次编号为 1 ~ n,当至少还剩下两张牌时进行以下操作:把第一张扔掉,然后把新的一张放到整叠牌的最后。
输入 ,输出每次扔掉的牌,以及最后剩下的牌。
纯模拟…

#include <bits/stdc++.h>
using namespace std;
int main() {
	queue<int> q;
	int n;
	scanf("%d", &n);
	for(int i = 1; i <= n; i++) q.push(i);
	while(!q.empty()) {
		printf("%d ", q.front()); q.pop();
		if(q.size() > 1) {
			int v = q.front(); q.pop();
			q.push(v);
		}
	}
	return 0;
}

队列还常用于BFS(Breadth First Search, 宽(广)度优先搜索算法), 点这里查看有关BFS的知识.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值