顺序单向循环队列的基本操作及解析(笔记版)

本节主要介绍了顺序单向循环队列的形成、基本操作的执行过程以及具体的代码展现。

以下是具体的代码展现:

#单向循环顺序顺序队列
#一共有两个指针front与rear,在单项循环队列里,front指针指向的那个结点为空
#单项循环顺序队列是有序号的
Maxsize=100
class CSqQueue:
    def __init__(self):
        self.data=[None]*Maxsize
        self.front=0
        self.rear=0

    def empty(self):#单项循环顺序队列的空的条件是front和rear指针指向同一个结点
        return self.front==self.rear

#除了判断空的时候序号只要相等就行,其他添加元素,删除元素,判断为满(这里就是assert (self.rear+1)%Maxsize!=self.front),获取头结点,都需要结点判断循环操作
    def push(self,e):#添加结点
        assert (self.rear+1)%Maxsize!=self.front#试探法,再前进一位两个指针就指向同一个结点
        self.rear=(self.rear+1)%Maxsize#添加元素的操作为rear指针后移一位,然后rear指向的data域赋值
        self.data[self.rear]=e

    def pop(self):#删除元素
        assert not self.empty()
        self.front=(self.front+1)%Maxsize#删除元素的操作为front指针后移一位,然后返回现在front指针指向结点的data域
        return self.data[self.front]

    def gethead(self):#获取头结点
        assert not self.empty()
        head=(self.front+1)%Maxsize#用head指针指向front指针的后一位
        return self.data[head]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏歌~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值