题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1702
题目大意:按照所给要求,输出相应的数。“FIFO”指代先进先出,即队列的概念,“FILO”指代先进后出,即栈的表现形式~这里定义两个函数即可,一个队列,一个栈的调用!
1 #include <iostream> 2 #include <cstdio> 3 #include <queue> 4 #include <stack> 5 #include <cstring> 6 using namespace std; 7 8 int s,p,o,z,q; 9 char ch[105],str[105]; 10 11 int FIFO(int w) 12 { 13 queue<int>q,qq; 14 for (int i=0; i<w; i++) 15 { 16 scanf("%s",ch); 17 if (strcmp(ch,"IN")==0) 18 { 19 scanf("%d",&o); 20 q.push(o); 21 } 22 else if (strcmp(ch,"OUT")==0) 23 { 24 if (!q.empty()) 25 { 26 s=q.front(); 27 cout<<s<<endl; 28 q.pop(); 29 } 30 else 31 cout<<"None"<<endl; 32 33 } 34 } 35 } 36 int FILO(int w) 37 { 38 stack<int>q,qq; 39 for (int i=0; i<w; i++) 40 { 41 scanf("%s",ch); 42 if (strcmp(ch,"IN")==0) 43 { 44 scanf("%d",&p); 45 q.push(p); 46 } 47 else if (strcmp(ch,"OUT")==0) 48 { 49 if (!q.empty()) 50 { 51 z=q.top(); 52 cout<<z<<endl; 53 q.pop(); 54 } 55 else 56 cout<<"None"<<endl; 57 } 58 } 59 } 60 int main () 61 { 62 int n,m; 63 while (cin>>n) 64 { 65 while (n--) 66 { 67 scanf ("%d%s",&m,str); 68 //scanf("%s %d",ch,m); 69 if (strcmp(str,"FIFO")==0) 70 FIFO(m); 71 else 72 FILO(m); 73 } 74 } 75 return 0; 76 }