队列操作 ——蓝桥杯
来源:互联网 发布:琳琅怎么绑定淘宝账号 编辑:程序博客网 时间:2024/05/20 08:24
问题描述
队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。
输入格式
第一行一个数字N。
下面N行,每行第一个数字为操作命令(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。
下面N行,每行第一个数字为操作命令(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。
输出格式
若干行每行显示一个2或3命令的输出结果。注意:2.出队命令可能会出现空队出队(下溢),请输出“no”,并退出。
样例输入
7
1 19
1 56
2
3
2
3
2
1 19
1 56
2
3
2
3
2
样例输出
19
1
56
0
no
1
56
0
no
数据规模和约定
1<=N<=50
#include<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()
itoa用法如下:
itoa是广泛应用的非标准C语言扩展函数,通常在<stdlib.h>头文件中包含这个函数。
原型:char
*itoa(
int
value,
char
*string,
int
radix);
int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等
atoi用法如下:
atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数,
原型:intatoi(const char *nptr);
参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。包含在头文件stdlib.h中。
这个题的思路就是根据题目要求对队列进行操作,把要输出的数放到一个string数组里,如果输出的是一个数字,就把数字转化为字符串。
1.最简单的方法当然是直接输出
#include<iostream> #include<cstdlib> #include<queue> #include<cstring> using namespace std; queue <int> q; int main() { int n,m,t,k=0,flag=1;//k用来统计要打印字符串的个数,n为输入个数,m,t都是临时变量,若输出了一个no,flag置为0 cin>>n; for(int i=0;i<n;i++) { cin>>m; if(m==1)//当输入为1 { cin>>t; q.push(t); } if(m==2)//当输入为2 { if(q.empty()&&flag)//注意一定要加flag判断 { cout<<"no"<<endl; flag=0; } else { if(flag) { cout<<q.front()<<endl; q.pop(); } } } if(m==3) { if(flag) cout<<q.size()<<endl; } } return 0; }
2.用一个数组把结果保存起来最后一块输出,建议用第一种,这个需要用到itoa函数(第二种只是为了介绍分组输出)
#include<iostream> #include<cstdlib> #include<queue>#include<cstring> using namespace std;queue <int> q;int main() { int n,m,t,k=0,flag=1;//k用来统计要打印字符串的个数,n为输入个数,m,t都是临时变量,若输出了一个no,flag置为0char *s=new char;//s用来当itoa中的一个参数,注意一定要申请空间string a[51];//储存要打印的字符串cin>>n;for(int i=0;i<n;i++){cin>>m;if(m==1)//当输入为1{cin>>t;q.push(t);}if(m==2)//当输入为2{if(q.empty()&&flag)//注意一定要加flag判断{a[k++]="no";flag=0;}else{if(flag){a[k++]=itoa(q.front(),s,10);q.pop();}}}if(m==3){if(flag)a[k++]=itoa(q.size(),s,10);}}for(int i=0;i<k;i++)cout<<a[i]<<endl;return 0;}
2 0
- 队列操作 ——蓝桥杯
- 20121010总结——队列操作
- 数据结构 ——队列操作的算法
- 数据结构——队列的基本操作
- 数据结构——队列、循环队列、链式队列主要操作函数的实现
- 蓝桥杯 算法提高 队列操作
- 蓝桥杯 算法提高 队列操作
- 蓝桥杯-队列操作(java)
- 蓝桥杯-算法提高-队列操作
- 蓝桥杯 算法提高 队列操作
- 蓝桥杯 算法提高 队列操作
- 蓝桥杯 算法提高 队列操作
- 实验3:栈和队列的基本操作实现及其应用——顺序队列和链队列
- 数据结构——队列——C++实现队列及其操作
- ios多线程操作(五)—— GCD串行队列与并发队列
- ios多线程操作(五)—— GCD串行队列与并发队列
- 队列的基本操作——链式队列的类模板定义
- 《数据结构》严蔚敏版(java解)——第三章 栈和队列03 顺序队列操作
- **LeetCode 467. Unique Substrings in Wraparound String
- 【chrome】chrome下载离线安装包
- 使用Async进行异步操作,先回复,后操作
- [BZOJ4710][Jsoi2011]分特产 容斥原理
- 假期训练——CodeForces - 742D Arpa's weak amphitheater and Mehrdad's valuable Hoses DP+dfs
- 队列操作 ——蓝桥杯
- HDU 1573 X的问题(模线性方程组)
- CC2540 ADC实验总结(使用AIN0)
- javascript 菜鸟学习
- STM32特性摘要
- VTK修炼之道27:图像基本操作_三维图像切片交互提取(回调函数、观察者-命令模式)
- MIUI8启用USB安装
- 446. Arithmetic Slices II - Subsequence
- CCF201512-1 数位之和(100分)