题目描述:
用两个队列实现一个栈,请实现他的两个函数Push 和 Pop,分别完成入栈和出栈功能。
解题思路图:
实现代码:
#include
#include
using namespace std;
template
class MyStack
{
public:
void push(const T& val)
{
queue2.push(val);
while (!queue1.empty())
{
queue2.push(queue1.front());
queue1.pop();
}
swap(queue1, queue2);
}
T pop()
{
int p = queue1.front();
queue1.pop();
return p;
}
private:
queue queue1;
queue queue2;
};
int main()
{
MyStack stack;
stack.push(‘a’);
stack.push(‘b’);
stack.push(‘c’);
stack.push(‘d’);
cout << “第1次出栈元素是:” << stack.pop() << endl;
cout << “第2次出栈元素是:” << stack.pop() << endl;
cout << “第3次出栈元素是:” << stack.pop() << endl;
cout << “第4次出栈元素是:” << stack.pop() << endl;
system(“pause”);
return 0;
}