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 26 Python
python实现的简单FTP上传下载文件实例
Jun 30 Python
Python的Django框架中的Context使用
Jul 15 Python
Python中关键字nonlocal和global的声明与解析
Mar 12 Python
非递归的输出1-N的全排列实例(推荐)
Apr 11 Python
python入门:这篇文章带你直接学会python
Sep 14 Python
django主动抛出403异常的方法详解
Jan 04 Python
详解一种用django_cache实现分布式锁的方式
Sep 01 Python
python 解决tqdm模块不能单行显示的问题
Feb 19 Python
python实现企业微信定时发送文本消息的实例代码
Nov 25 Python
python spilt()分隔字符串的实现示例
May 21 Python
python可视化大屏库big_screen示例详解
Nov 23 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学习之PHP运算符
2006/10/09 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
jQuery插件 tabBox实现代码
2010/02/09 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
python入门教程之识别验证码
2017/03/04 Python
python/sympy求解矩阵方程的方法
2018/11/08 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
Delphi工程师笔试题
2013/09/21 面试题
车间班长岗位职责
2013/11/30 职场文书
运动会方队口号
2014/06/07 职场文书
项目合作意向书模板
2014/07/29 职场文书
办公室日常管理制度
2015/08/04 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
JavaScript实现简单的音乐播放器
2022/08/14 Javascript