您的位置:首页 > 职场人生

58面试题-----用两个栈实现一个队列

2017-09-22 11:00 344 查看
pop函数:

(1)栈1不为空,栈2为空,把栈1中的数push进栈2,栈1进行pop,知道栈1剩余1个数时,就不把这个数放进栈2,这个数就是要真正pop的数。

()栈1不为空,栈2也不为空,直接进行栈2的pop的操作。

class Solution
{
public:
void push(int node) {
stack1.push(node);
}

int pop() {
int ret=0;
if(!stack1.empty()&&stack2.empty()){
while(stack1.size()>1){
int data=stack1.top();
stack1.pop();
stack2.push(data);
}
ret=stack1.top();
stack1.pop();
}
else {   //1和2都不为空
ret=stack2.top();
stack2.pop();
}
return ret;
}
private:
stack<int> stack1;
stack<int> stack2;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: