刚开始学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, ...
随机推荐
- 将Win7系统将默认打开的库改为计算机
- Solr6.6 Tomcat8部署
原文:https://github.com/x113773/testall/issues/6 准备工作:[solr-6.6.0](http://www.apache.org/dyn/closer.lu ...
- java对mysql的增删改查
-----连接数据库 package connectdb;import java.sql.*;class Dbcon { // 此处连接数据库,独立开一个类,以后操作数据库的每次连接就不用写这么多 p ...
- Linux学习笔记(二)——文件/目录/VIM
文件和目录管理 及 VI编辑器的使用 文件和目录管理,刚开始学这块的时候感觉内容很多很杂,但是学完进行总结后,发现其实很有条理的而且没什么难度,只是熟练掌握这些常用的命令就行了.至于Vim编辑器,不得 ...
- 智联招聘 卓聘IM演进过程
1. 卓聘IM开发背景 智联卓聘是智联旗下高端人才招聘平台,成立快4年了,业务增涨每年以100%速度增涨,业务增涨快在开发和上线速度要求也比较高. 2016年6月提出IM开发需求,7月初上线,开发人 ...
- Socket通信中的 BeginReceive与EndReceive
BeginReceive 与endReceive 必须成对出现,如果BeginReceive没有及时调用endReceive,可能会出现数据被从buffer中读取二次,如果在下面这行代码下面加入别的代 ...
- 使用random输出10个double型的随机数
使用random输出10个double型的随机数 代码如下: package Day05;import java.util.Random;import java.util.Scanner; publi ...
- CentOS-7.2安装SQuirreL SQL Client连接Hive
一,SQuirreL SQL Client干吗的? SQuirreL SQL Client是一款功能强大的服务器配置管理软件,该软件能够帮助用户快速.高效的配置服务器,且支持用户查看数剧库的结构并发出 ...
- web组件工具之获取表单数据:webUtils
本文需要的架包:commons-beanutils-1.8.3.jar.commons-logging-1.1.3.jar.servlet-api.jar. 本文共分为五部分:1)封装通用工具类:从表 ...
- Apache Kafka - 介绍
原文地址地址: http://blogxinxiucan.sh1.newtouch.com/2017/07/12/Apache-Kafka-介绍/ Apache Kafka教程 之 Apache Ka ...