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编程过程中用单元测试法调试代码的介绍
Apr 02 Python
python 默认参数问题的陷阱
Feb 29 Python
利用ctypes提高Python的执行速度
Sep 09 Python
Python与R语言的简要对比
Nov 14 Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 Python
Django之模型层多表操作的实现
Jan 08 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
浅析python标准库中的glob
Mar 13 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 Python
Python 图片处理库exifread详解
Feb 25 Python
浅谈Python中的函数(def)及参数传递操作
May 25 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
May 28 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
综合图片计数器
2006/10/09 PHP
模仿OSO的论坛(二)
2006/10/09 PHP
php include的妙用,实现路径加密
2008/07/29 PHP
php中定时计划任务的实现原理
2013/01/08 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
js实现进度条的方法
2015/02/13 Javascript
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
layui radio性别单选框赋值方法
2018/08/15 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
使用url_helper简化Python中Django框架的url配置教程
2015/05/30 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
canvas实现滑动验证的实现示例
2020/08/11 HTML / CSS
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
授权委托书怎么写
2014/09/25 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang