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的一些用法分享
Oct 07 Python
用pywin32实现windows模拟鼠标及键盘动作
Apr 22 Python
使用python实现个性化词云的方法
Jun 16 Python
解决python报错MemoryError的问题
Jun 26 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
Oct 30 Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 Python
从numpy数组中取出满足条件的元素示例
Nov 26 Python
浅谈Python中的模块
Jun 10 Python
python3.9.1环境安装的方法(图文)
Feb 02 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
Mar 04 Python
PyTorch的Debug指南
May 07 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/03/07 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
php快速导入大量数据的实例方法
2019/09/23 PHP
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
读jQuery之十 事件模块概述
2011/06/27 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
理解JS事件循环
2016/01/07 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
Javascript之图片的延迟加载的实例详解
2017/07/24 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
wxPython窗口中文乱码解决方法
2014/10/11 Python
Python random模块常用方法
2014/11/03 Python
Python判断操作系统类型代码分享
2014/11/22 Python
python处理二进制数据的方法
2015/06/03 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
python manage.py runserver流程解析
2019/11/08 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
详解CSS3 Media Queries中媒体属性的使用
2016/02/29 HTML / CSS
canvas实现烟花的示例代码
2020/01/16 HTML / CSS
生态学毕业生自荐信
2013/10/27 职场文书
社区活动邀请函范文
2014/01/29 职场文书
美食节策划方案
2014/05/26 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
学生上课说话检讨书
2014/10/25 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
超市采购员岗位职责
2015/04/07 职场文书
Win10 最新稳定版本 21H2开始推送
2022/04/19 数码科技