The simple deque implementation problem.
C++ Code (STL deque).
#include<bits/stdc++.h>
#define file freopen("lightoj.txt","rt",stdin)
using namespace std;
int main()
{
// file;
deque<int>d;
string str;
int n,m,a,val,test;
cin>>test;
for(int j=1; j<=test; j++)
{
d.clear();
printf("Case %d:\n",j);
cin>>n>>m;
for(int i=1; i<=m; i++)
{
cin>>str;
if(str=="pushLeft")
{
cin>>a;
if(d.size()<n)
{
d.push_front(a);
cout<<"Pushed in left: "<<a<<endl;
}
else
cout<<"The queue is full"<<endl;
}
else if(str=="pushRight")
{
cin>>a;
if(d.size()<n)
{
d.push_back(a);
cout<<"Pushed in right: "<<a<<endl;
}
else
cout<<"The queue is full"<<endl;
}
else if(str=="popLeft")
{
if(!d.empty())
{
val = d.front();
d.pop_front();
cout<<"Popped from left: "<<val<<endl;
}
else
cout<<"The queue is empty"<<endl;
}
else
{
if(!d.empty())
{
val = d.back();
cout<<"Popped from right: "<<val<<endl;
d.pop_back();
}
else
cout<<"The queue is empty"<<endl;
}
}
}
return 0;
}
No comments:
Post a Comment