1、stack1,作为保存入队元素,每当有元素入队时候,push()
2、stack2,保存出队元素,当stack2为空时,将stack1中的入队元素保存至stack1中,同时pop()出堆顶元素
class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
if (stack2.empty() && stack1.empty())
{
cout << "queue is empty";
}
if (stack2.empty())//当堆2为空时,将堆1元素放入堆2中
{
while (!stack1.empty())
{
stack2.push(stack1.top());
stack1.pop();
}
}
int result;
result = stack2.top();
stack2.pop();
return result;
}
private:
stack<int> stack1; //存放push元素
stack<int> stack2; //存放待pop元素
};