栈与队列的模板题,重在学习他的思想和基本用法
#include<cstdio>
#include<cstring>
#include<stack>
#include<queue>
#include<algorithm>
using namespace std;
char a[5],c[5];
void que_ex(int t){
int s;
queue<int >que;
for(int l=0;l<t;l++){
scanf("%s",c);
if(!strcmp(c,"IN")){
scanf("%d",&s);
que.push(s);
}
else if(!strcmp(c,"OUT")){
if(!que.empty()){
printf("%d\n",que.front());
que.pop();
}
else
printf("None\n");
}
}
}
void sta_ex(int t){
int s;
stack<int >sta;
for(int l=0;l<t;l++){
scanf("%s",c);
if(!strcmp(c,"IN")){
scanf("%d",&s);
sta.push(s);
}
else if(!strcmp(c,"OUT")){
if(!sta.empty()){
printf("%d\n",sta.top());
sta.pop();
}
else
printf("None\n");
}
}
}
int main(){
int n;
scanf("%d",&n);
while(n--){
int u;
scanf("%d%s",&u,a);
if(!strcmp(a,"FIFO"))
que_ex(u);
else if(!strcmp(a,"FILO"))
sta_ex(u);
}
return 0;
}