队列的实现:顺序队列

队列作为线性表的一种,与栈不同,它支持在队头进行删除(出队)和队尾进行插入(入队)。本文将探讨顺序循环队列的原理,包括如何利用标记区分队头和队尾,以及如何处理队列空和满的状态。出队时,front指针会向前移动;入队时,rear指针会移动至下一个位置。判断队列空和满的条件分别是front==rear和(rear+1)%MAXSIZE==front。
摘要由CSDN通过智能技术生成

队列(Queue)也是一种常见的线性表,它和栈相比有以下不同:

  1. 队列可以在表的两端进行操作。栈只能在栈顶进行插入和删除。
  2. 两端允许操作的类型不一样:可以进行删除的一端称为队头,这种操作也叫出队;可以进行插入的一端称为队尾,这种操作也叫入队。总的来说,队头只能出队,队尾只能入队。
队列的特点:先进先出(First in first out)或者后进后出(Last in last out)。
队列的示意图:


模拟队列这种数据结构并不是什么难事,但会遇到一些问题,如:
假溢出


队列中明明还有空间,却因为rear已经指向最后,造成无法入队问题,这是假溢出。
解决办法是:使用链式存储,这显然可以。在顺序存储时,我们常见的解决办法是把它首尾相接,构成循环队列,这可以充分利用队列的存储空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值