请问怎样用两个栈实现一个队列?最好给出算法谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/21 16:25:04

示例程序如下,其中TMyQueue就是用栈实现的队列:
#include <iostream>
#include <stack>

class TMyQueue
{
private:
stack<char> s1,s2;
public:
void push(char c)
{
while (!s2.empty())
{
char x = s2.top();
s2.pop();
s1.push(x);
}
s1.push( c );
}
char pop()
{
char c;
while (!s1.empty())
{
char x = s1.top();
s1.pop();
s2.push(x);
}
c = s2.top();
s2.pop();
return c;
}
bool empty() const
{
return s1.empty() && s2.empty();