python双端队列原理、实现与使用方法分析


Posted in Python onNovember 27, 2019

本文实例讲述了python双端队列原理、实现与使用方法。分享给大家供大家参考,具体如下:

双端队列

双端队列(deque,全名double-ended queue),是一种具有队列和栈的性质的数据结构。

双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列可以在队列任意一端入队和出队。

操作

Deque() 创建一个空的双端队列
add_front(item) 从队头加入一个item元素
add_rear(item) 从队尾加入一个item元素
remove_front() 从队头删除一个item元素
remove_rear() 从队尾删除一个item元素
is_empty() 判断双端队列是否为空
size() 返回队列的大小

实现

class Deque(object):
  """双端队列"""
  def __init__(self):
    self.items = []
  def is_empty(self):
    """判断队列是否为空"""
    return self.items == []
  def add_front(self, item):
    """在队头添加元素"""
    self.items.insert(0,item)
  def add_rear(self, item):
    """在队尾添加元素"""
    self.items.append(item)
  def remove_front(self):
    """从队头删除元素"""
    return self.items.pop(0)
  def remove_rear(self):
    """从队尾删除元素"""
    return self.items.pop()
  def size(self):
    """返回队列大小"""
    return len(self.items)
if __name__ == "__main__":
  deque = Deque()
  deque.add_front(1)
  deque.add_front(2)
  deque.add_rear(3)
  deque.add_rear(4)
  print deque.size()
  print deque.remove_front()
  print deque.remove_front()
  print deque.remove_rear()
  print deque.remove_rear()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
使用Python的Treq on Twisted来进行HTTP压力测试
Apr 16 Python
介绍Python中的文档测试模块
Apr 28 Python
在Django的URLconf中使用多个视图前缀的方法
Jul 18 Python
关于Python中空格字符串处理的技巧总结
Aug 10 Python
python 类对象和实例对象动态添加方法(分享)
Dec 31 Python
python实现定时自动备份文件到其他主机的实例代码
Feb 23 Python
Python递归函数实例讲解
Feb 27 Python
解决pyqt5中QToolButton无法使用的问题
Jun 21 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
Feb 11 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
Nov 17 Python
Python中使用Lambda函数的5种用法
Apr 01 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 #Python
OpenCV+Python--RGB转HSI的实现
Nov 27 #Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 #Python
python的range和linspace使用详解
Nov 27 #Python
python定间隔取点(np.linspace)的实现
Nov 27 #Python
Python进程池Pool应用实例分析
Nov 27 #Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 #Python
You might like
PHP中创建并处理图象
2006/10/09 PHP
PHP模拟SQL Server的两个日期处理函数
2006/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
Angular 中 select指令用法详解
2016/09/29 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
2018/08/28 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
python操作列表的函数使用代码详解
2017/12/28 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
python中scikit-learn机器代码实例
2018/08/05 Python
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
python批量获取html内body内容的实例
2019/01/02 Python
python3 kubernetes api的使用示例
2021/01/12 Python
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
电子商务应届生求职信
2013/11/16 职场文书
新闻专业本科生的自我评价分享
2013/11/20 职场文书
企业标语口号
2014/06/10 职场文书
党员目标管理责任书
2014/07/25 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
2019年工作总结范文
2019/05/21 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python