牛客《剑指Offer》 用两个栈实现队列
2017-07-09 09:29
232 查看
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
思路
栈的数据是后进先出的,所以利用两个栈的配合可以实现队列先进先出的效果。所有存入的数据,均压入栈stack1。
要取出数据时,开始stack2为空,将所有stack1中的数据取出,以此压入stack2 中,这些数据再从stack2中取出,此
class Solution { public: void push(int node) { stack1.push(node); } int pop() { if(stack2.size()!=0){ int tmp = stack2.top(); stack2.pop(); return tmp; } else{ while(stack1.size()!=0){ int tmp = stack1.top(); stack1.pop(); stack2.push(tmp); } return pop(); } } private: stack<int> stack1; stack<int> stack2; };
时便实现了先进先出。对于stack2为空时,取数据直接从stack2开始,直至stack2为空。
相关文章推荐
- 剑指offer两个栈实现队列的c++写法(九度1512)
- 剑指Offer之用两个栈实现队列
- 剑指offer第五题【用两个栈实现队列】c++实现
- 牛客网-《剑指offer》-用两个栈实现队列
- 《剑指offer》——用两个栈实现队列
- 《剑指Offer》面试题-用两个栈实现队列
- 面试题07_用两个栈实现队列——剑指offer系列
- 《剑指Offer》读书笔记05:用两个栈实现队列
- 剑指Offer系列---(9)用两个栈实现队列和用两个队列实现栈
- 《剑指offer》——用两个栈实现队列
- 《剑指offer》面试题七 用两个栈实现队列
- (剑指Offer)面试题7:用两个栈实现队列
- 剑指offer :07 用两个栈实现队列
- JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作(《剑指offer》)
- 《剑指offer》面试题7—用两个栈实现队列
- 剑指offer 面试题7 两个栈实现队列
- 剑指Offer之 - 用两个栈实现队列
- 《剑指Offer》学习笔记--面试题7:用两个栈实现队列
- 剑指offer系列之五:用两个栈实现队列
- 《剑指Offer》面试题:用两个队列实现一个栈