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+django快速实现文件上传
Oct 24 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
Jun 14 Python
使用pytorch进行图像的顺序读取方法
Jul 27 Python
set在python里的含义和用法
Jun 24 Python
详解python中的time和datetime的常用方法
Jul 08 Python
python3.7环境下安装Anaconda的教程图解
Sep 10 Python
Python 实现自动导入缺失的库
Oct 29 Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 Python
tensorflow实现残差网络方式(mnist数据集)
May 26 Python
python中rc1什么意思
Jun 19 Python
python 线程的五个状态
Sep 22 Python
Python爬虫开发与项目实战
Dec 16 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启用sphinx全文搜索的实现方法
2014/12/24 PHP
PHP实现的简单缓存类
2015/07/29 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
Javascript hasOwnProperty 方法 & in 关键字
2008/11/26 Javascript
页面中iframe相互传值传参
2009/12/13 Javascript
JavaScript 学习笔记(五)
2009/12/31 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
python将控制台输出保存至文件的方法
2019/01/07 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
python 一维二维插值实例
2020/04/22 Python
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
比较基础的php面试题及答案-编程题
2012/10/14 面试题
附答案的Java面试题
2012/11/19 面试题
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
八年级生物教学反思
2014/01/22 职场文书
小学母亲节活动方案
2014/03/14 职场文书
超市中秋节促销方案
2014/03/21 职场文书
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android
i7 6700处理器相当于i5几代
2022/04/19 数码科技