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+树莓派+YOLO打造一款人工智能照相机
Jan 02 Python
python实现微信跳一跳辅助工具步骤详解
Jan 04 Python
Python 在字符串中加入变量的实例讲解
May 02 Python
详解Python中的四种队列
May 21 Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 Python
python3实现逐字输出的方法
Jan 23 Python
python 日期排序的实例代码
Jul 11 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
Django中自定义查询对象的具体使用
Oct 13 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
Jan 04 Python
django使用graphql的实例
Sep 02 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
Jan 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
php 常用字符串函数总结
2008/03/15 PHP
php方法调用模式与函数调用模式简例
2011/09/20 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
jquery 插件学习(二)
2012/08/06 Javascript
浅谈Javascript 执行顺序
2013/12/18 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
Layui实现主窗口和Iframe层参数传递
2019/11/14 Javascript
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
详解Python中的文本处理
2015/04/11 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
如何提高JDBC的性能
2013/04/30 面试题
如何高效率的查找一个月以内的数据
2012/04/15 面试题
小学母亲节活动方案
2014/03/14 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
邓小平理论心得体会
2014/09/09 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
总结高并发下Nginx性能如何优化
2021/11/01 Servers
JavaScript 原型与原型链详情
2021/11/02 Javascript
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL