58面试题-----用两个栈实现一个队列
2017-09-22 11:00
344 查看
pop函数:
(1)栈1不为空,栈2为空,把栈1中的数push进栈2,栈1进行pop,知道栈1剩余1个数时,就不把这个数放进栈2,这个数就是要真正pop的数。
()栈1不为空,栈2也不为空,直接进行栈2的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; };
相关文章推荐
- 面试题--用两个栈实现一个队列
- 经典面试题一:用两个栈实现一个队列
- 面试题7:用两个队列实现一个栈
- 面试题7_使用两个栈实现一个队列的功能
- 数据结构面试题(1)--用两个队列实现一栈和用两个栈实现一个队列
- 栈的经典面试题之用两个栈实现一个队列
- 面试题:用两个栈实现一个队列
- 栈和队列面试题(一)---一个数组实现两个栈
- 面试题7:用两个栈实现队列和用两个队列实现一个栈
- 面试题7两个栈实现一个队列和两个队列实现一个栈
- 数据结构面试题:两个队列实现一个堆栈
- 面试题:用两个队列实现一个栈
- 记一道面试题:STL两个栈实现一个队列。
- 面试题 用两个栈实现一个队列
- 【面试题】剑指Offer-7-两个栈实现一个队列
- 微软,Google面试题 (18) —— 用两个栈实现一个队列
- 面试题 7: 两个栈实现一个队列
- 栈&队列面试题之之两个栈实现一个队列
- 面试题之用两个栈实现一个队列
- 《剑指Offer》面试题:用两个栈来实现一个队列