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中使用Boolean操作符做真值测试实例
Jan 30 Python
Python中的列表生成式与生成器学习教程
Mar 13 Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
Feb 13 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
python excel使用xlutils类库实现追加写功能的方法
May 02 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 Python
实例详解Python装饰器与闭包
Jul 29 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
python SVD压缩图像的实现代码
Nov 05 Python
python实现百度OCR图片识别过程解析
Jan 17 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 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
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
PHP 快速排序算法详解
2014/11/10 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
2017/07/10 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
python 查找字符串是否存在实例详解
2017/01/20 Python
python实现kNN算法
2017/12/20 Python
Sanic框架Cookies操作示例
2018/07/17 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
python如何代码集体右移
2020/07/20 Python
vscode+PyQt5安装详解步骤
2020/08/12 Python
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
银行存款证明样本
2014/01/17 职场文书
联谊活动策划书
2014/01/26 职场文书
迎新晚会邀请函
2014/02/01 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
助学感谢信范文
2015/01/21 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
SQL Server内存机制浅探
2022/04/06 SQL Server