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 29 Python
python调用机器喇叭发出蜂鸣声(Beep)的方法
Mar 23 Python
python实现的系统实用log类实例
Jun 30 Python
解决python3运行selenium下HTMLTestRunner报错的问题
Dec 27 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
Jun 18 Python
python 反编译exe文件为py文件的实例代码
Jun 27 Python
Python用字典构建多级菜单功能
Jul 11 Python
Python爬虫之urllib基础用法教程
Oct 12 Python
python opencv实现信用卡的数字识别
Jan 12 Python
将数据集制作成VOC数据集格式的实例
Feb 17 Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 Python
python通过新建环境安装tfx的问题
May 20 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中一个有意思的日期逻辑处理
2012/03/25 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
php实现xml与json之间的相互转换功能实例
2016/07/07 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
2018/09/16 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
jQuery中:button选择器用法实例
2015/01/04 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
百度地图api如何使用
2015/08/03 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
2017/03/29 Javascript
ES6新特性之变量和字符串用法示例
2017/04/01 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
在Vue中使用echarts的方法
2018/02/05 Javascript
layui table 参数设置方法
2018/08/14 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
举例详解Python中循环语句的嵌套使用
2015/05/14 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
python分布式编程实现过程解析
2019/11/08 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
2013年学期结束动员演讲稿
2014/01/07 职场文书
读书演讲主持词
2014/03/18 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
骨干教师事迹材料
2014/12/17 职场文书
运动会新闻稿
2015/07/17 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
一封真诚的自荐信帮你赢得机会
2019/05/07 职场文书