Python实现基本数据结构中队列的操作方法示例


Posted in Python onDecember 04, 2017

本文实例讲述了Python实现基本数据结构中队列的操作方法。分享给大家供大家参考,具体如下:

#! /usr/bin/env python
#coding=utf-8
class Queue(object):
  def __init__(self,size):
    self.size=size
    self.head=-1 #初始化队头
    self.tail=-1 #初始化队尾
    self.queue=[]
  def EnQueue(self,x):
    if self.IsFull():#如果试图往满队列插入元素,则发生上溢
      raise Exception("overflow !")
    else:
      self.queue.append(x)
      self.tail += 1 #往队列中加入元素是在尾部进行
  def DeQueue(self):
    if self.IsEmpty():#如果试图从空队列删除元素,则发生下溢
      raise Exception("underflow !")
    else:
      self.head += 1#从队列中删除元素在队头进行,将队头后移
      return self.queue.pop(0)#利用内建函数pop()将队头弹出
  def IsFull(self):#判断队列满
    #return (self.tail+1)%self.size == self.head
    return self.tail-self.head+1==self.size
  def IsEmpty(self):#判断队列空!!!
    return self.head == self.tail
if __name__ == '__main__':
  print "三水点靠木测试结果:"
  q=Queue(10)
  for i in range(3):
    q.EnQueue(i)
  print q.queue
  print q.DeQueue()
  print q.queue
  print q.DeQueue()
  print q.IsEmpty()
  print q.DeQueue()
  print q.IsEmpty()
  print q.queue
  for i in range(9):
    q.EnQueue(i)
  print q.queue
  print q.IsFull()

运行结果:

Python实现基本数据结构中队列的操作方法示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python三元运算符实现方法
Dec 17 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
用Python写王者荣耀刷金币脚本
Dec 21 Python
在pandas中一次性删除dataframe的多个列方法
Apr 10 Python
Python解析Excle文件中的数据方法
Oct 23 Python
详解Python requests 超时和重试的方法
Dec 18 Python
8段用于数据清洗Python代码(小结)
Oct 31 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
Feb 25 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
jupyter notebook中美观显示矩阵实例
Apr 17 Python
PyQt5中QSpinBox计数器的实现
Jan 18 Python
基于Python实现nc批量转tif格式
Aug 14 Python
Python numpy生成矩阵、串联矩阵代码分享
Dec 04 #Python
Python内置函数—vars的具体使用方法
Dec 04 #Python
Python实现基本数据结构中栈的操作示例
Dec 04 #Python
Python实现多进程共享数据的方法分析
Dec 04 #Python
Python数据结构之栈、队列的实现代码分享
Dec 04 #Python
关于Python数据结构中字典的心得
Dec 04 #Python
python Flask实现restful api service
Dec 04 #Python
You might like
如何使用动态共享对象的模式来安装PHP
2006/10/09 PHP
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
dedecms集成财付通支付接口
2014/12/28 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
结合Vue控制字符和字节的显示个数的示例
2018/05/17 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
JS实现多功能计算器
2020/10/28 Javascript
Python中字典和集合学习小结
2017/07/07 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
Python安装whl文件过程图解
2020/02/18 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
Python3开发环境搭建详细教程
2020/06/18 Python
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
类如何去实现接口
2013/12/19 面试题
自行车租赁公司创业计划书
2014/01/28 职场文书
办公室文员自荐书
2014/02/03 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
工程部经理岗位职责
2015/02/02 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书