[Python]队列实现介绍
2023-09-11 14:22:09 时间
队列:
队列是一个数据集合,仅允许在列表的一端进行插入,在另一端进行删除;
进行插入的一端:队尾(rear),插入动作称为进队or入队
进行删除的一端:队头(front),删除动作称为出队
队的性质:先进先出(FIFO)
环形队列:
当队尾指针front == MaxSize +1 时,再前进一个位置就自动到0;
队首指针前进1: front = (front + 1)% MaxSize
队尾指针前进1:rear = (rear +1) % MaxSize
队空条件:rear == front
队满条件:(rear + 1) %MaxSize == front
代码实现:
class Queue():
def __init__(self ,size = 100):
self.queue = [0] * size
self.size = size
self.rear = 0
self.front = 0
def __str__(self):
return self.queue
def push(self,element):
if not self.is_fill():
self.rear = (self.rear +1 )%self.size
self.queue[self.rear] = element
else:
print('Queue is fill')
def pop(self):
if not self.is_empty():
self.front = (self.front +1 )% self.size
return self.queue[self.front]
else:
print("Queue is empty")
def is_empty(self):
return self.rear == self.front
def is_fill(self):
return (self.rear+1 )%self.size == self.front
q = Queue(5)
for i in range(4):
q.push(i)
print(q.pop())
相关文章
- python执行脚本加参数_命令行运行Python脚本时传入参数的三种方式详解以及argparse子命令subparsers()方法
- python安装包报错解决方案
- 算法Python 输出百分比的方法(Python2输出百分比、Python3输出百分比)
- Python url中提取域名(获取域名、获取顶级域名、tldextract)
- 【华为OD机试真题 python】服务失效判断 【2022 Q4 | 200分】
- python最新安装【2023最新】
- Python零基础入门,2分钟带你了解python
- 零基础自学Python需要多长时间从入门到精通?学python能兼职挣钱吗?怎么挣钱?
- Python分享:python爬虫可以用来做什么?
- 20个非常有用的Python单行代码
- 153 python网络编程 - TCP客户端
- gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- 源码编译vi过程中进行配置时报“checking if compile and link flags for Python are sane... no: PYTHON DISABLED”怎么办?
- 《树莓派Python编程入门与实战(第2版)》——1.7 排除树莓派的故障
- python实例 条件和循环语句
- Python开发区块链之02如何生成private key 与 public key
- 《Python语言程序设计》——2.14 实例研究:计算距离
- Python 使用PyMySql 库 连接MySql数据库时 查询中文遇到的乱码问题(实测可行) python 连接 MySql 中文乱码 pymysql库
- Python 基础 之 多任务 Process 进程知识点的简单整理,以及对应的使用(进程队列,进程池,进程池队列等)
- (17)python消息队列,python RabbitMQ
- Python字典排序
- 2.1 The Python Interpreter(python解释器)
- python视频转图片
- 【爬虫系列】【Python】python with as的用法
- 【python数字信号处理】——线性卷积
- Python Web(1):建立第一个Web项目