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导入txt数据到mysql的方法
Apr 08 Python
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 Python
详解python使用turtle库来画一朵花
Mar 21 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
Oct 06 Python
如何把外网python虚拟环境迁移到内网
May 18 Python
浅谈Python协程
Jun 17 Python
Spring @Enable模块驱动原理及使用实例
Jun 23 Python
Python 虚拟环境工作原理解析
Dec 24 Python
利用python查看数组中的所有元素是否相同
Jan 08 Python
Python基础之元类详解
Apr 29 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 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文件上传原理简单分析
2011/05/29 PHP
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
jQuery的框架介绍
2016/05/11 Javascript
BootStrap 附加导航组件
2016/07/22 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
Python常用列表数据结构小结
2014/08/06 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
Python如何使用Gitlab API实现批量的合并分支
2019/11/27 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
详解python算法常用技巧与内置库
2020/10/17 Python
国际贸易专业个人求职信范文分享
2013/12/14 职场文书
党员培训思想汇报
2014/01/07 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
企业金融服务方案
2014/06/03 职场文书
青岛导游词
2015/02/12 职场文书
2015年大学生实习评语
2015/03/25 职场文书
公积金贷款承诺书
2015/04/30 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
话题作文之呼唤
2019/12/18 职场文书
深入详解JS函数的柯里化
2021/06/09 Javascript