Hdu-1072
題目描述:
首先輸入一個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;
}
Hdu-1072