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实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
Python实现字典依据value排序
Feb 24 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
Python的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
Python输出带颜色的字符串实例
Oct 10 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
Python数据类型之String字符串实例详解
May 08 Python
python字符串替换第一个字符串的方法
Jun 26 Python
Python搭建Spark分布式集群环境
Jul 05 Python
Python Subprocess模块原理及实例
Aug 26 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编程中数组的指针的使用
2015/11/30 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
简单JS代码压缩器
2006/10/12 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
定制FileField中的上传文件名称实例
2017/08/23 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
python 变量初始化空列表的例子
2019/11/28 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
Python实现微信好友的数据分析
2019/12/16 Python
python几种常用功能实现代码实例
2019/12/25 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
房地产销售经理岗位职责
2014/01/01 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
爱心捐款倡议书
2014/04/14 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
社区清明节活动总结
2014/07/04 职场文书
2015年司机工作总结
2015/04/23 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书