剑指offer--面试题7: 用两个栈实现队列
2016-09-26 13:33
302 查看
python实现:
c++实现:
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。python实现:
# -*- coding:utf-8 -*- class Solution: def __init__(self): self.stack1 = []#入队操作 self.stack2 = []# def push(self, node): # write code here """ 总往stack1里入队 """ self.stack1.append(node) def pop(self): # return xx """ stack2里不为空,就直接弹出即为结果,否则将stack1里的元素全部移到stack2,直至 stack1里只剩下一个,弹出即为结果 """ if self.stack2: return self.stack2.pop() if len(self.stack1)==0: raise Exception("pop error since queue is empty") while len(self.stack1)>1: self.stack2.append(self.stack1.pop()) return self.stack1.pop()
c++实现:
class Solution { public: void push(int node) { stack1.push(node); } int pop() { int result; if(stack2.size()>0){ result = stack2.top(); stack2.pop(); return result; } //if(stack1.size()==0) // throw new exception("queue is empty"); int tmp; while(stack1.size()>1){ tmp = stack1.top(); stack1.pop(); stack2.push(tmp); } result = stack1.top(); stack1.pop(); return result; } private: stack<int> stack1; stack<int> stack2; };
相关文章推荐
- 【剑指offer】面试题7:用两个栈实现队列
- 剑指Offer:面试题7 用两个栈实现队列
- 【剑指Offer学习】【面试题7:用两个栈实现队列】
- 剑指Offer----面试题七:用两个栈实现队列
- 【剑指offer】面试题七:用两个栈实现队列
- 【剑指offer】面试题7:用两个栈实现队列
- 剑指Offer面试题7用两个栈实现队列
- 剑指offer--面试题7:用两个栈实现队列--Java实现
- 剑指Offer面试题7:用两个栈实现队列 Java实现
- 剑指offer面试题7:用两个栈实现队列
- 【剑指Offer面试题】 九度OJ1512:用两个栈实现队列
- 【剑指offer】2.3.5栈和队列——面试题7:用两个栈实现队列
- 剑指Offer面试题7(Java版):用两个栈实现队列与用两个队列实现栈
- 【练习笔记】剑指offer-面试题7 :用两个栈实现队列
- 剑指offer 面试题7 两个栈实现队列
- 【剑指offer 面试题7】用两个栈实现队列
- 剑指offer面试题java实现之题7:用两个栈模拟一个队列的入队和出队操作
- 剑指offer之面试题7:用两个栈实现队列
- [剑指offer][面试题07-扩展]用两个队列实现栈
- [剑指offer][面试题07]用两个栈实现队列