用栈实现一个队列
题目:用栈实现一个队列
class QueueWithStack{
private:
stack<int> input;
stack<int> output;
public:
int dequeue();//出队列
void enqueue(int);//入队列
};
void QueueWithStack::enqueue(int value)
{
input.push(value);
}
int QueueWithStack::dequeue()
{
//如果输出栈为空,则把input中的依次取出放入output
if(output.empty())
{
while(!input.empty())
{
int val = input.top();
input.pop();
output.push(val);
}
}
//output此时已不为空
int val = output.top();
output.pop();
return val;
}