栈和队列---由两个栈组成队列
来源:互联网 发布:js获取id的属性值 编辑:程序博客网 时间:2024/05/21 11:25
【题目】
编写一个类,用两个栈实现队列,支持队列的基本操作(add, poll, peek)。
【基本思路】
使用两个栈stackpush、stackpop,stackpush栈负责压入数据、stackpop栈负责将stackpush中的元素逆序,用于获取或者弹出栈顶元素。但是有一个规则:stackpop只有为空的时候才再次向stackpush栈索要元素,而且,必须一次拿走stackpush中当前的所有元素。
【代码实现】
#python3.5class TwoStackQueue: stackPush = [] stackPop = [] def add(self, newNum): self.stackPush.append(newNum) def poll(self): if not self.stackPush and not self.stackPop: raise Exception("Queue is empty!") elif not self.stackPop: while self.stackPush: self.stackPop.append(self.stackPush.pop()) return self.stackPop.pop() def peek(self): if not self.stackPush and not self.stackPop: raise Exception("Queue is empty!") elif not self.stackPop: while self.stackPush: self.stackPop.append(self.stackPush.pop()) return self.stackPop[-1]
阅读全文
2 0
- 由两个栈组成队列
- 1栈和队列--由两个栈组成队列
- 栈和队列 由两个栈组成的队列
- 栈和队列---由两个栈组成队列
- 【栈】由两个栈组成队列
- 设计由两个栈组成的队列
- 2.由两个栈组成的队列
- 由两个栈组成的队列
- 由两个栈组成的队列
- 由两个栈组成的队列
- 由两个栈组成的队列
- 由两个栈组成的队列
- 由两个栈组成的队列
- 栈和队列(2)--由两个栈组成的队列
- 栈和队列——由两个栈组成的队列
- (一)栈和队列--由两个栈组成的队列 java实现
- 【WG面试算法】由两个栈组成的队列
- 1_2由两个栈组成的队列
- UVA
- vim插件管理
- 如何创建C# Closure ?
- HDU-4793 Collision 计算几何 解方程
- 不使用多线程, 使用select, 实现http请求的异步
- 栈和队列---由两个栈组成队列
- Java 日期比较大小
- Ubuntu16.04 python3 caffe安装
- RTP协议全解析(H264码流和PS流
- synergy 使用说明以及资源分享
- nginx配置location总结及rewrite规则写法
- linux网络编程:使用多进程实现socket同时收发数据
- 中国人工智能学会通讯——增强学习是人工智能的未来 1.3 增强学习的核心技术
- Python 文件(List)归并