最近学习了python数据结构,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用
文章目录
一 基础知识
-
定义
- 队列是一个数据集合,仅允许在队列的一端进行插入,另一端进行删除
-
特点
- 先进先出 FIFO 基本概念
-
队头:进行删除的一端(front),删除动作称为出队
队尾:进行插入的一端(rear),插入动作称为入队 缺点
- 每个空间域只能利用一次。造成空间极度浪费。并且非常容易越界!
二 循环队列
针对上述的问题。有个较好的解决方法!就是对已经申请的(数组)内存重复利用。这就是我们所说的循环队列。
循环队列:当队首或队尾的指针位置 p == Maxsize - 1 时,再前进一个位置就自动到0
-
队首指针前进1:front = (front + 1) % Maxsize
-
队尾指针前进1:rear = (rear + 1) % Maxsize
-
队空条件:rear == front
-
队满条件:(rear + 1) % Maxsize == front
三 Python实现
class Queue:
def __init__(self,size=100):
self.queue = [0