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笔记(2)
Oct 24 Python
python列表操作实例
Jan 14 Python
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
Python实现的选择排序算法示例
Nov 29 Python
网红编程语言Python将纳入高考你怎么看?
Jun 07 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 Python
pytorch 可视化feature map的示例代码
Aug 20 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
python列表删除和多重循环退出原理详解
Mar 26 Python
python中对二维列表中一维列表的调用方法
Jun 07 Python
教你怎么用python selenium实现自动化测试
May 27 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
一个简易需要注册的留言版程序
2006/10/09 PHP
PHP仿盗链代码
2012/06/03 PHP
开启PHP的伪静态模式
2015/12/31 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
如何直接访问php实例对象中的private属性详解
2017/10/12 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
一个加载js文件的小脚本
2007/06/28 Javascript
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
使用jquery修改表单的提交地址基本思路
2014/06/04 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
2015/06/06 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
Vue.js动态组件解析
2016/09/09 Javascript
JS不完全国际化&本地化手册 之 理论篇
2016/09/27 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
python daemon守护进程实现
2016/08/27 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
Python模块WSGI使用详解
2018/02/02 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
企业理念标语
2014/06/09 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
创业计划书之冷饮店
2019/09/27 职场文书