下面是实现代码,仅供参考
#pragma once
#include<stack>
template<typename T>
class QueueByTwoStack
{
public:
void QueueByTwoStackPush(T x)//进队
{
s1.push(x);
}
void QueueByTwoStackPop()//出对
{
if (s2.empty()) {
while (!s1.empty()) {
s2.push(s1.top());
s1.pop();
}
}
s2.pop();
}
T QueueByTwoStackFront()//访问对头
{
if (s2.empty()) {
while (!s1.empty()) {
s2.push(s1.top());
s1.pop();
}
}
return s2.top();
}
bool QueueByTowStackEmpty()//是否为空队
{
return s1.empty() + s2.empty();
}
private:
std::stack<T> s1;
std::stack<T> s2;
};