算法题/两个栈实现队列
来源:互联网 发布:2017笔记本推荐 知乎 编辑:程序博客网 时间:2024/06/05 13:18
python2.7
思想:
入队时:判断s2是否为空,如果是,加数据追加到s1
如果s2不为空,先将s2中数据倒入s1,再将数据追加到s1
出队时:将s1中的数据倒入s2后,再从s2中弹出
#coding:utf-8"""两个栈实现队列"""class Queue(object): def __init__(self): self.s1 = [] self.s2 = [] #定义入队列 def inqueue(self,data): #如果s2为空直接压入s1,1,2,3,4,5 if self.s2 == []: self.s1.append(data) print(data,'-----in') #如果s2不为空,将s2数据压入s1,(5-4)--->(4,5) #再将数据压入s1(4,5)-->(4,5,6) else: while self.s2: self.s1.append(self.s2.pop()) self.s1.append(data) print(data,'------in') #定义出队列 def outqueue(self): while self.s1: self.s2.append(self.s1.pop()) try: return self.s2.pop() except: print('empty')if __name__ == '__main__': queue = Queue() queue.inqueue(0) queue.inqueue(1) queue.inqueue(2) queue.inqueue(3) queue.inqueue(4) print(queue.outqueue()) print(queue.outqueue()) print(queue.outqueue()) #print(queue.outqueue()) #print(queue.outqueue()) queue.inqueue(5) queue.inqueue(6) queue.inqueue(7) queue.inqueue(8) print(queue.outqueue()) print(queue.outqueue()) print(queue.outqueue()) print(queue.outqueue()) print(queue.outqueue()) print(queue.outqueue()) print(queue.outqueue())
阅读全文
0 0
- 算法题:两个栈实现一个队列
- [算法题]用两个栈实现队列
- 算法题/两个栈实现队列
- 算法题/两个队列实现栈
- 算法--两个栈实现队列
- 算法-两个栈实现队列
- 两个栈实现一个队列和两个队列实现一个栈【算法导论课后题】
- 简单算法 - 两个队列实现一个栈
- [算法浅析] 用两个栈实现队列
- 算法导论 使用两个栈实现队列
- [算法学习]两个栈实现一个队列
- 算法分析:两个栈实现一个队列
- 【算法】用两个栈实现一个队列
- 两个栈实现一个队列的算法
- 算法题目---用两个栈实现队列
- 用两个栈实现一个队列算法
- 【算法】用两个栈模拟实现队列
- 每天一道算法题——用两个栈实现队列和用两个队列实现栈
- 面向对象设计的SOLID原则
- VS2013/MFC基于对话框编程:文本超链接
- STL-容器
- python3--异常处理及习题
- 1858: [Scoi2010]序列操作
- 算法题/两个栈实现队列
- Hbase安装与使用
- 带涨跌箭头的柱形图
- Number Sequence
- 144. Binary Tree Preorder Traversal 【先序遍历 + 栈模拟递归】
- 滤波
- poj 3233 Matrix Power Series
- 数据库查询结果ResultSet类型 转 List类型
- java常用线性数据结构及用法