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实现电子词典
Apr 23 Python
Python中optionParser模块的使用方法实例教程
Aug 29 Python
Python实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
python 构造三维全零数组的方法
Nov 12 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
Dec 04 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 Python
Python使用py2neo操作图数据库neo4j的方法详解
Jan 13 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
python实现UDP协议下的文件传输
Mar 20 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
Jul 15 Python
python中lower函数实现方法及用法讲解
Dec 23 Python
如何使用Python对NetCDF数据做空间相关分析
Apr 21 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原理之Session Gc的一个小概率Notice
2011/04/12 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
Python logging模块学习笔记
2014/05/24 Python
用Python实现随机森林算法的示例
2017/08/24 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
在PYQT5中QscrollArea(滚动条)的使用方法
2019/06/14 Python
Python中turtle库的使用实例
2019/09/09 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
Snapfish爱尔兰:在线照片打印和个性化照片礼品
2018/09/17 全球购物
统计员岗位职责
2013/11/14 职场文书
档案检查欢迎词
2014/01/13 职场文书
同学毕业留言寄语
2015/02/27 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android