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 socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
Python中几种操作字符串的方法的介绍
Apr 09 Python
Python实现的用户登录系统功能示例
Feb 05 Python
python代码过长的换行方法
Jul 19 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
在Django admin中编辑ManyToManyField的实现方法
Aug 09 Python
python中可以声明变量类型吗
Jun 18 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
Dec 08 Python
jupyter notebook更换皮肤主题的实现
Jan 07 Python
PyTorch 实现L2正则化以及Dropout的操作
May 27 Python
利用python做数据拟合详情
Nov 17 Python
python 使用pandas读取csv文件的方法
Dec 24 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中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
jQuery中:focus选择器用法实例
2014/12/30 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
2019/04/12 Javascript
机器学习10大经典算法详解
2017/12/07 Python
python中协程实现TCP连接的实例分析
2018/10/14 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
pycharm运行scrapy过程图解
2019/11/22 Python
django迁移文件migrations的实现
2020/03/31 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
硕士研究生自我鉴定
2013/11/08 职场文书
开会迟到检讨书
2014/01/08 职场文书
工地安全检查制度
2014/02/04 职场文书
销售主管岗位职责
2014/02/08 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
质检员岗位职责范本
2015/04/07 职场文书
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
js 实现Material UI点击涟漪效果示例
2022/09/23 Javascript