刚开始学python——数据结构——“自定义队列结构“
自定义队列结构 (学习队列后,自己的码)
主要功能:用列表模拟队列结构,考虑了入队,出队,判断队列是否为空,是否已满以及改变队列大小等基本操作。
下面是封装的一个类,把代码保存在myQueue.py文件中(我保存在” C:/Users/Administrator/Desktop/时间宝/python/myQueue.py“中)。
class myQueue: #构造函数,默认队列大小10
def __init__(self,size=10):
self._content=[]
self._size=size
self._current=0 def setSize(self,size):
if size<self._current: #如果缩小队列,应删除后面的元素
for i in range(size,self._current)[::-1]:
del self._content[i]
self._current=size
self._size=size def put(self,v): #入队
if self._current<self._size:
self._content.append(v)
self._current=self._current+1
else:
print('The queue is full') def get(self): #出队
if self._content:
self._current=self._current-1
return self._content.pop(0)
else:
print('The queue is empty') def show(self): #显示所有元素
if self._content:
print(self._content)
else:
print('The queue is empty') def empty(self):
self._content=[] def isEmpty(self): #判断是否已满
if not self._content:
return True
else:
return False def isFull(self): #判断是否为空
if self._current==self._size:
return True
else:
return False if __name__=='__main__':
50 print('Please use me as a module.')
下面是演示自定义队列类的用法:
======= RESTART: C:/Users/Administrator/Desktop/时间宝/python/myQueue.py =======
Please use me as a module.
>>> import myQueue
>>> q=myQueue.myQueue()
>>> q.get()
The queue is empty
>>> q.put(5)
>>> q.put(7)
>>> q.idFull()
>>> q.isFull()
False
>>> q.put('a')
>>> q.put(3)
>>> q.show()
[5, 7, 'a', 3]
>>> q.setSize(3)
>>> q.show()
[5, 7, 'a']
>>> q.put(10)
The queue is full >>> q.setSize(5)
>>> q.put(10)
>>> q.show()
[5, 7, 'a', 10]
有个小问题就是“if __name__=='__main__':
print('Please use me as a module.') “这个是什么意思,请大家给予答案!
以上就是这些,希望有所收获,再接再励。
刚开始学python——数据结构——“自定义队列结构“的更多相关文章
- 刚开始学Python,坚持下去
嗯,刚开始学Python没几天,挺好的一门语言,十分简洁,也很好上手. 坚持下去,每天至少看一个小时的Python.
- Python数据结构01 线性结构
栈 实现 后进先出的结构,主要有如下操作 *Stack() *push(item) *pop() *peek() *isEmpty() *size() class Stack(): def __ini ...
- python数据结构之队列
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 队列是一种先进先出的(First In First Out)的线性表,简称FIFO.允许插入的一端为队尾,允许删除的一端 ...
- python数据结构之队列(二)
书接上文,双端队列区别于单队列为:双端队列可以对队列头和尾部同时进行操作,单队列不行 #coding:utf-8 class DoubleQueue(object): def __init__(sel ...
- python数据结构之队列(一)
队列概念 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 队列是一种先进先出的(First In First Out)的线性表,简称FIFO.允许插入的一端为队尾,允许 ...
- Python 数据结构_队列
目录 目录 队列 队列 Queue 队列是一种先进先出(FIFO)的数据类型, 新的元素通过 入队 的方式添加进 Queue 的末尾, 出队 就是从 Queue 的头部删除元素. 用列表来做 Queu ...
- python数据结构与算法——队列
队列结构可以使用数组来模拟,只需要设定头和尾的两个标记 参考自<啊哈> # 按书中的代码会出现索引越界的问题(书中申请了超量的空间) # 尝试令tai初始为len(q)-1则不会出错但少了 ...
- 简学Python第二章__巧学数据结构文件操作
#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...
- python数据结构之栈与队列
python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...
随机推荐
- jquery滚动条事件
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- 每篇半小时1天入门MongoDB——4.MongoDB索引介绍及数据库命令操作
准备工作 继续连接到mongo C:\Users\zouqi>mongo MongoDB shell version: 3.0.7 connecting to: test 查看数据库和集合 &g ...
- 记一次Nginx的配置
记第一次Nginx的配置 Nginx 首先了解到Nginx是干什么的?它有哪些作用?比较常用到的基础功能有反向代理.负载均衡.正向代理.http服务器.这次部署用到的就是反向代理. 反向代理就是指在目 ...
- vijos1056题解
题目: 桌面上放了N个平行于坐标轴的矩形,这N个矩形可能有互相覆盖的部分,求它们组成的图形的面积. 在翻题目时,偶然发现了这道标号为WA的题目. 原来,以前我把一中培训的代码发了上去,却WA了4个点, ...
- blob 和 sas
Blob是什么? 请看上篇文章简单总结下关于blob的图片上传 在使用Blob图片上传的时候碰到许多问题,比如如何使用用户名密码下载文件啊什么的 今天就记录一下我碰到的最大的问题 如何匿名去访问你上传 ...
- 利用TinyXml进行数据库的热更新
TinyXml库比较小,但功能较为完善,挺适合用来读取小块的xml文件; 我写了几个利用TinyXml读取和保存数据的例子,大家可以参考使用; 主要是为了热更新配置所做的一些函数应用; //开始热更 ...
- JavaScript-DOM编程的一些常用属性
一.Document常见属性 document.title // 设置文档标题等价于HTML的title标签 document.bgColor // 设置页面背景色 document.fgColor ...
- FTP服务器 Serv-u 环境搭建
一.安装 *Windows 10 *Serv-u Windows-v15.1.2 *Mysql Mysql 5.7 安装成功后开始配置serv-u. 二.配置 1.新建域(test) 点击新建域,开始 ...
- 基于Jmeter和Jenkins搭建性能测试框架
搭建这个性能测试框架是希望能够让每个人(开发人员.测试人员)都能快速的进行性能测试,而不需要关注性能测试环境搭建过程.因为,往往配置一个性能环境可能需要很长的时间. 1.性能测试流程 该性能测试框架工 ...
- VerilogHDL概述与数字IC设计流程学习笔记
一.HDL的概念和特征 HDL,Hard Discrimination Language的缩写,翻译过来就是硬件描述语言.那么什么是硬件描述语言呢?为什么不叫硬件设计语言呢?硬件描述语言,顾名思义就是 ...