蓝桥杯 队列操作 C++算法提高 HERODING的蓝桥杯之路

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
  队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。
输入格式
  第一行一个数字N。
  下面N行,每行第一个数字为操作命令(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。
输出格式
  若干行每行显示一个2或3命令的输出结果。注意:2.出队命令可能会出现空队出队(下溢),请输出“no”,并退出。
样例输入
7
1 19
1 56
2
3
2
3
2
样例输出
19
1
56
0
no
数据规模和约定
  1<=N<=50

解题思路:
c++专门提供了队列库函数,只要引入这个库就可以直接使用,只要注意一下queue的具体使用函数就可以,如下所示:
C++队列Queue类成员函数如下:
back()返回最后一个元素
empty()如果队列空则返回真
front()返回第一个元素
pop()删除第一个元素
push()在末尾加入一个元素
size()返回队列中元素的个数
queue 的基本操作举例如下:
queue入队,如例:q.push(x); 将x 接到队列的末端。
queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问queue队首元素,如例:q.front(),即最早被压入队列的元素。
访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。
判断queue队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()

代码如下:

#include<bits/stdc++.h>
#include<queue>

using namespace std;

int main(){
	queue<int> q;
	int judge, num, n;
	cin >> n;
	while(n --){
		cin >> judge;
		if(judge == 1){
			cin >> num;
			q.push(num);
		}else if(judge == 2){
			if(q.empty()){
				cout << "no" << endl;
				break;
			}else{
				int temp = q.front();
				q.pop();
				cout << temp << endl;
			}
		}else{
			cout << q.size() << endl;
		}
	}
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/HERODING23/article/details/107573399
今日推荐