【题目链接】
http://acm.hdu.edu.cn/showproblem.php?pid=1702
题目意思
题目大意:一开始给你一串字符,FIFO代表先进先出,FILO代表先进后出。然后根据IN为进,OUT为出来输出,如果没有数字可输出了输出“None”
解题思路
就一题队列和栈的模拟题。(懒直接用stl的数据库了)
代码部分
#include <bits/stdc++.h>
using namespace std;
#define LL long long
const int maxn=1005;
const int INF=0x3f3f3f;
int n;
void fifo()
{
string c;
int d;
queue<int>q;
for (int i=0; i<n; i++)
{
cin>>c;
if (c=="IN")
{
cin>>d;
q.push(d);
}
else
{
if (q.empty())
cout<<"None"<<endl;
else
{
cout<<q.front()<<endl;
q.pop();
}
}
}
}
void filo()
{
string c;
int d;
stack<int>q;
for (int i=0; i<n; i++)
{
cin>>c;
if (c=="IN")
{
cin>>d;
q.push(d);
}
else
{
if (q.empty())
cout<<"None"<<endl;
else
{
cout<<q.top()<<endl;
q.pop();
}
}
}
}
int main()
{
string c;
int t;
scanf("%d",&t);
while(t--)
{
cin>>n>>c;
if (c=="FIFO")
fifo();
else filo();
}
return 0;
}