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