HDU 1072 ACboy needs your help again!(栈和队列)

来源:互联网 发布:setscale java 编辑:程序博客网 时间:2024/04/28 07:48

ACboy needs your help again!

题目来源:点击打开链接

题目分析:这道题就是一个栈和队列的简单应用;栈:先进后出" FILO ",队列:先进先出" FIFO ".

c 源代码:

#include<stdio.h>#include<stack>#include<queue>using namespace std;int main(){stack<int>s;queue<int>q;int t,n,a;char str[5],str1[5];   //利用数组存储scanf("%d",&t);while(t--){scanf("%d",&n);scanf("%s",str);while(!q.empty())//注意,要将栈和队列先制空          q.pop();           while(!s.empty())    s.pop();while(n--){scanf("%s",str1);if(str1[0]=='I'&&str[2]=='F')   // 单个字符{scanf("%d",&a);q.push(a);}if(str1[0]=='I'&&str[2]=='L'){scanf("%d",&a);s.push(a);}if(str1[0]=='O'&&str[2]=='F'){if(!q.empty()){printf("%d\n",q.front());q.pop();}elseprintf("None\n");}if(str1[0]=='O'&&str[2]=='L'){if(!s.empty()){printf("%d\n",s.top());s.pop();}elseprintf("None\n");}}}return 0;}

c++ 源代码:

#include <iostream>#include<stdio.h>#include <string>#include <queue>#include <stack>using namespace std;int main(){    stack<int> s;    queue<int> q;       string str, str1;    //c++ 里面直接定义字符串    int t,n,a;    scanf("%d",&t);    while(t--)    {    scanf("%d",&n);        cin>>str;         while(!q.empty())         q.pop();           while(!s.empty())    s.pop();        while(n--)        {            cin>>str1;            if((str1=="IN")&&(str=="FIFO"))    //直接比较字符串            {                scanf("%d",&a);                q.push(a);               }                       if((str1=="IN")&&(str=="FILO"))            {                scanf("%d",&a);                s.push(a);               }                       if((str1=="OUT")&&(str=="FIFO"))            {                   if(!q.empty())                {                    printf("%d\n",q.front());                    q.pop();                }                else                    printf("None\n");            }               if((str1=="OUT")&&(str=="FILO"))            {                               if(!s.empty())                {                    printf("%d\n",s.top());                    s.pop();                  }                else                    printf("None\n");                           }                 }    }    return 0;}

两者大同小异,就是注意一下字符串!!

0 0