-
题目描述:
首先输入一个N;代表测试数据的个数;
然后每个测试数据的开头第一行输入一个n和一个命令(FIFO或FILO<就是先进先出或先进后出>)
然后是该测试数据的n行,每行包括“IN”加一个数字(代表入栈或入队)或者一个“OUT”(代表出队或出栈)
若已经是空的了遇到“OUT”命令时输出“None”; -
题目思路:
其实就是c++STL的队列和栈的简单应用; -
代码如下:
#include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; while(n--){ int com_num,typ_num; cin>>com_num; string com; cin>>com; if(com=="FIFO"){ queue<int> q; for(int i=0;i<com_num;i++){ cin>>com; if(com=="IN"){ cin>>typ_num; q.push(typ_num); } if(com=="OUT"){ if(q.empty()){ cout<<"None"<<endl; } else{ cout<<q.front()<<endl; q.pop(); } } } } if(com=="FILO"){ stack<int> st; for(int i=0;i<com_num;i++){ cin>>com; if(com=="IN"){ cin>>typ_num; st.push(typ_num); } if(com=="OUT"){ if(st.empty()){ cout<<"None"<<endl; } else{ cout<<st.top()<<endl; st.pop(); } } } } } return 0; }