c++数据结构中 顺序队列的队首队尾_yiduobo的每日leetcode 622.设计循环队列

aab814ebd39f0b3803f6d7caa287f16f.png

祖传的手艺不想丢了,所以按顺序写一个leetcode的题解。计划每日两题,争取不卡题吧。

622.设计循环队列https://leetcode-cn.com/problems/design-circular-queue/

题目要求实现循环队列,具体为插入、删除、获取队首或队尾元素值这几种操作。队列是先进先出,因此插入需要我们维护队尾元素,而删除则需要维护队首元素,恰好与获取队首队尾元素重叠。

由于题目没有要求我们展现出“循环”这个性质,因此我们只需要想办法维护住队首和队尾即可,而最简单的做法就是维护一条单链表的头尾节点。

对于插入操作,我们新建一个节点。若当前链表为空,那么将头尾节点都置为该节点,否则将尾结点的next指向当前结点,然后将尾结点置为该节点。

对于删除操作,若链表中只有一个元素,那么将头尾节点都置为空,否则将头结点置为头结点的next节点,然后删去原先的头结点。

最后附上python代码:

class 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值