用两个栈实现队列:

 class QueueWithTwoStacks(object):
def __init__(self):
self._stack1 = []
self._stack2 = [] def appendTail(self,x):
self._stack1.append(x) def deleteHead(self):
if self._stack2:
return self._stack2.pop()
else:
if self._stack1:
while self._stack1:
self._stack2.append(self._stack1.pop())
return self._stack2.pop()
else:
return None

用两个队列实现栈:

 class StackWithTwoQueues(object):
def __init__(self):
self._stack1 = []
self._stack2 = [] def push(self,x):
if len(self._stack1) == 0:
self._stack1.append(x)
elif len(self._stack2) == 0:
self._stack2.append(x)
if len(self._stack2) == 1 and len(self._stack1) >= 1:
while self._stack1:
self._stack2.append(self._stack1.pop(0))
elif len(self._stack1) == 1 and len(self._stack2) > 1:
while self._stack2:
self._stack1.append(self._stack2.pop(0)) def pop(self):
if self._stack1:
return self._stack1.pop(0)
elif self._stack2:
return self._stack2.pop(0)
else:
return None

最新文章

  1. [ASP.NET MVC] ASP.NET Identity登入技术剖析
  2. React之事件绑定、列表中key的使用
  3. java文件和文件夹复制、删除、移动操作
  4. MySQL5.6 replication architecture --原图来自姜承尧
  5. Java集合排序(看完秒懂)
  6. 利用Ajax改变发送请求方式
  7. C#泛型对类型参数的推断
  8. runtime重写description方法打印model属性和值
  9. jquery 分页控件1
  10. PHPCMS V9里加入JS时生成首页出错
  11. Struts 框架 之 文件上传下载案例
  12. 数组Array、数组API
  13. CSS3图片翻转动画技术详解
  14. js截取固定长度字符串,多余字符显示...
  15. zabbix系列 ~ 自动监控多实例功能
  16. Spark中groupByKey、reduceByKey与sortByKey
  17. 机器学习技法笔记:03 Kernel Support Vector Machine
  18. Centos 6.4 安装dnsmasq
  19. 【HDOJ1598】【枚举+最小生成树】
  20. BBS--首页、个人站点、ORM

热门文章

  1. P2617 Dynamic Ranking
  2. 关于HTML5和CSS3的几个“新增”
  3. SVN仓库目录结构
  4. window下搭建Vue.Js开发环境
  5. CentOS下安装jdk1.8.0_181
  6. lunix 安装使用mongo
  7. oracle基础入门(一)
  8. Top 16 Java 应用类 - 这些功能再也不用自己写了
  9. Python标准库:内置函数ascii(object)
  10. vim 帮助文档汉化