python实现环形队列

本文介绍了Python中环形队列的数据结构及其实现。环形队列利用取模运算来管理队列的满与空状态,避免了数组越界的问题。在添加和提取数据时,队列头部和尾部的指针会相应移动。当队头和队尾指针相等时,表示队列为空或满,有效数据的数量通过遍历队列并取模计算得出。
摘要由CSDN通过智能技术生成

0队列,是一种基础数据结构,遵循的原则是先进先出,就和排队一样,排在队伍前面的人先出来。

class arrayQueen:
    # 数组最大容量
    maxSize = 0
    # 队列的头部
    front = 0
    # 队列的尾部
    rear = 0
    def __init__(self, size):
        self.maxSize = size
        # 这是python中定义一维数组长度的方式,这里定义数组长度
        self.arr = [0 for x in range(0, size)]z

这里的第一个参数,maxsize,是数组的最大长度,front,指向队列的头部,rear,指向队列的尾部。这个是非常重要的参数,因为在数组元素数量发生变化时,front或者rear的数值也会发生改变。

# 判断队列是否为空
def is_empty(self):
    return self.front == self.rear

当front和rear相等时,队列为空,初始时二者都为0,但二者相等且不为0的情况也是有可能的。

# 判断队列是否满了
def is_full(self):
    return (self.rear + 1) % self.maxSize == self.front

可以看到,这里返回的是一个判断, (self.rear + 1) % self.maxSize == self.front。这里为什么要用这个取模呢?这个1又是什么情况?

实际上,这个队列中有一个位置是不存放元素的,而是存放的rear,打个比方&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值