1. 程式人生 > >使用兩個棧來實現一個佇列簡單的push和pop

使用兩個棧來實現一個佇列簡單的push和pop

class Queue
{
private:
stack<int> inputStack;
stack<int> outputStack;
public:
void enqueue(int);
int dequeue();
};


void Queue::enqueue(int value)
{
inputStack.push(value);
}


int Queue::dequeue()
{
int value;
if(!outputStack.empty())
{
value=outputStack.top();
outputStack.pop();
return value;
}
while(!inputStack.empty())
{
outputStack.push(inputStack.top());
inputStack.pop();
}
value=outputStack.top();
outputStack.pop();
return value;
}




int _tmain(int argc, _TCHAR* argv[])
{
Queue qe;
int number[]={1,2,3,4,5,6};
for(int i=0;i<6;i++)
{
qe.enqueue(number[i]);
}
cout<<qe.dequeue()<<endl;
cout<<qe.dequeue()<<endl;
qe.enqueue(8);
for(int i=0;i<5;i++)
{
cout<<qe.dequeue();
}
system("pause");
return 0;
}