剑指offer_用两个栈实现队列
2018-03-30 20:54
281 查看
原题描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
思路:始终用stack1作为入栈,stack2作为一个临时的容器,当队列时,将stack1的所有元素清空转到stack2中,将stack2顶部的元素出栈即为出队列。最后再将stack2中的所有元素清空重新放回stack1中。class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
while(!stack1.empty()){
stack2.push(stack1.top());
stack1.pop();
}
int top=stack2.top();
stack2.pop();
while(!stack2.empty()){
stack1.push(stack2.top());
stack2.pop();
}
return top;
}
private:
stack<int> stack1;
stack<int> stack2;
};
思路:始终用stack1作为入栈,stack2作为一个临时的容器,当队列时,将stack1的所有元素清空转到stack2中,将stack2顶部的元素出栈即为出队列。最后再将stack2中的所有元素清空重新放回stack1中。class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
while(!stack1.empty()){
stack2.push(stack1.top());
stack1.pop();
}
int top=stack2.top();
stack2.pop();
while(!stack2.empty()){
stack1.push(stack2.top());
stack2.pop();
}
return top;
}
private:
stack<int> stack1;
stack<int> stack2;
};
相关文章推荐
- 剑指Offer_编程题 用两个栈实现队列
- 剑指Offer面试题:6.用两个栈实现队列
- 《剑指offer》—5、用两个栈实现队列
- 牛客网—剑指offer-用两个栈实现队列
- 《剑指offer》面试题7—用两个栈实现队列
- 剑指offer 之 两个栈来实现一个队列
- 《剑指offer》-用两个栈实现队列
- 剑指Offer之 - 用两个栈实现队列
- JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作(《剑指offer》)
- 剑指Offer---面试题:使用两个栈实现队列
- (php实现剑指offer)两个栈实现一个队列
- 《剑指offer》-用两个栈来实现一个队列
- 《剑指offer》编程题java实现(十六):用两个栈实现队列
- 剑指offer系列之五:用两个栈实现队列
- 剑指Offer编程练习005——用两个栈实现队列
- 剑指offer--用两个栈实现队列
- JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作(《剑指offer》)
- 剑指offer——用两个栈来实现队列
- 剑指offer第五题【用两个栈实现队列】c++实现
- 《剑指offer》-用两个栈实现队列