此原理和两个栈模拟一个队列是一样的,可以参考思想
直接给出代码给出链接http://http://blog.csdn.net/lei19950206/article/details/72773558
class Stack
{
public:
void Push(int value)
{
if (!q2.empty())
{
q1.push(q2.back());
q2.pop();
}
q1.push(value);
}
void Pop()
{
if (q1.empty() && q2.empty())
return;
if (!q2.empty())
{
q2.pop();
}
while (!q1.empty())
{
q2.push(q1.back());
q1.pop();
}
}
protected:
queue<int> q1;
queue<int> q2;
};