用两个栈实现队列

用两个栈实现队列
#include < iostream >
#include
< stack >
using   namespace  std;
stack
< int > stackA,stackB;
void  enqueue( int  x)
{
 stackA.push(x);
}

int  dequeue()
{
 
if(stackB.empty())
 
{
  
while(!stackA.empty())
  
{
   stackB.push(stackA.top());
   stackA.pop();
  }

 }

 
if(stackB.empty())
  
return -1;
 
int val=stackB.top();
 stackB.pop();
 
return val;
}

int  main()
{
 
char ch;
 
int i=0;
 
while(cin>>ch)
 
{
  
if(ch=='e')
  
{
   enqueue(i
++);
  }

  
else cout<<dequeue()<<endl;
 }

}

你可能感兴趣的:(用两个栈实现队列)