两个栈实现队列
1.初始代码
class Solution { public: void push(int node) { stack1.push(node); } int pop() { int i=stack1.size(); int value=0; for(int j=0;j<i;j++) { stack2.push(stack1.top()); stack1.pop(); } value=stack2.top(); stack2.pop(); for(int j=0;j<i-1;j++) { stack1.push(stack2.top()); stack2.pop(); } return value; } private: stack<int> stack1; stack<int> stack2; };
思路:
入队:栈1入队。
出队:
栈1倒入栈2 栈2出栈栈顶 栈2倒入栈1改进:
不用判断栈的大小,直接用栈while(!shack1.empty()),来进行循环。