HDU 1072
阿新 • • 發佈:2018-11-11
-
題目描述:
首先輸入一個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; }