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简单文本处理的方法
Jul 10 Python
Python找出list中最常出现元素的方法
Jun 14 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
OpenCV-Python实现轮廓检测实例分析
Jan 05 Python
python基础教程项目三之万能的XML
Apr 02 Python
Python基于多线程实现ping扫描功能示例
Jul 23 Python
python 实现数字字符串左侧补零的方法
Dec 04 Python
Python使用Selenium爬取淘宝异步加载的数据方法
Dec 17 Python
python实现图书借阅系统
Feb 20 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
pytorch查看网络参数显存占用量等操作
May 12 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 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
2014/06/23 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
alert出数组中的随即值代码
2014/09/25 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
实例代码详解jquery.slides.js
2015/11/16 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
JS实现简易日历效果
2021/01/25 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python使用turtule画五角星的方法
2015/07/09 Python
利用python发送和接收邮件
2016/09/27 Python
django 多数据库配置教程
2018/05/30 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
教师党员个人自我评价
2015/03/04 职场文书
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android