Stack using Queues


#include<bits/stdc++.h>
using namespace std;
class Q
{
stack<int> s1,s2;
public :void enque(int a)
{
s1.push(a);
}
public:int deque()
{
int j=-1;
while(s1.size()<=1)
{
int a= s1.top();
s1.pop();

s2.push(a);
}
if(s1.size()==1)
{
j=s1.top();
s1.pop();
}
while(!s2.empty())
{
int a= s1.top();
s1.pop();
s2.push(a);
}
return j;
}
};
int main()
{
Q q1;
int r=0;
while(r!=3)
{
cout<<"1. Enque"<<endl;
cout<<"2.Deque"<<endl;
cout<<"3. exit"<<endl;
cin>>r;
if(r==1)
{int e;
cout<<"Enter an element to insert in queue";
cin>>e;
q1.enque(e);
}
else if(r==2)
{

cout<<q1.deque()<<endl;
}
}

}

Comments

Popular posts from this blog

Linked List 10 operations from which problems are made ( complete guide for you)

Stack - print bracket number

Get minimum of stack in Reasonable time