您的位置:首页 > 产品设计 > UI/UE

hdu1702 list or stack+queue

2013-08-05 15:10 176 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1702

#include<iostream>
#include<cstdio>
#include<cstring>
#include<list>
using namespace std;
int main()
{
// freopen("1.txt","r",stdin);
int n;
scanf("%d",&n);
while(n--)
{
int m,i,x;
list<int>li;
li.clear();
char s[10],ss[10];
scanf("%d %s",&m,s);
if(strcmp(s,"FIFO")==0)
{
for(i=0; i<m; i++)
{
scanf("%s",ss);
if(strcmp(ss,"IN")==0)
{
cin>>x;
li.push_back(x);
}
else
{
if(li.empty())
cout<<"None"<<endl;
else
{
cout<<li.front()<<endl;
li.pop_front();
}
}
}
}
else
{
for(i=0; i<m; i++)
{
scanf("%s",ss);
if(strcmp(ss,"IN")==0)
{
cin>>x;
li.push_back(x);
}
else
{
if(li.empty())
cout<<"None"<<endl;
else
{
cout<<li.back()<<endl;
li.pop_back();
}
}
}
}
}
return 0;
}


  

#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
#include<queue>
using namespace std;
int main()
{
// freopen("1.txt","r",stdin);
int n,x,m;
char s[10],ss[10];
stack<int>st;
queue<int>q;
scanf("%d",&n);
while(n--)
{
while(!st.empty())
st.pop();
while(!q.empty())
q.pop();
scanf("%d %s",&m,s);
if(strcmp(s,"FILO")==0)
{
for(int i=0; i<m; i++)
{
scanf("%s",ss);
if(strcmp(ss,"IN")==0)
{
cin>>x;
st.push(x);
}
else
{
if(st.empty())
cout<<"None"<<endl;
else
{
cout<<st.top()<<endl;;
st.pop();
}
}
}
}
else
{
for(int i=0; i<m; i++)
{
scanf("%s",ss);
if(strcmp(ss,"IN")==0)
{
cin>>x;
q.push(x);
}
else
{
if(q.empty())
cout<<"None"<<endl;
else
{
cout<<q.front()<<endl;
q.pop();
}
}
}
}
}
return 0;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: