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中查看变量内存地址的方法
May 05 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
python 字典 按key值大小 倒序取值的实例
Jul 06 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
Jul 11 Python
Python实现手写一个类似django的web框架示例
Jul 20 Python
python使用tornado实现简单爬虫
Jul 28 Python
pandas中apply和transform方法的性能比较及区别介绍
Oct 30 Python
python将txt文档每行内容循环插入数据库的方法
Dec 28 Python
python web框架中实现原生分页
Sep 08 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
通过实例了解Python异常处理机制底层实现
Jul 23 Python
如何使用python包中的sched事件调度器
Apr 30 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 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
javascript适合移动端的日期时间拾取器
2015/11/10 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
react-router-dom 嵌套路由的实现
2020/05/02 Javascript
js实现缓动动画
2020/11/25 Javascript
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
杰夫·班克斯男士服装网上商店:Jeff Banks
2019/10/24 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
应用电子技术专业个人求职信
2013/09/21 职场文书
工程招投标邀请书
2014/01/30 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
本科毕业论文导师评语
2014/12/31 职场文书
资料员岗位职责
2015/02/10 职场文书
2019财务毕业实习报告
2019/06/27 职场文书
java多态注意项小结
2021/10/16 Java/Android