队列

1 一般队列的“先进先出”原则
队列属于受限的线性表,遵循先进先出的原则
如果元素的输入顺序一定,那么他从队列的输出顺序也一定,这一点要同栈做好区分。
如 a,b,c依次入队列,则出队列顺序也一样
当然,上述情况只针对,从队尾入队,从队头出队的队列。

2 循环队列
为解决假溢出的情况,开始采用循环队列
循环队列中一般采用三种方式计算队列中元素个数
(1)牺牲一个单元格的方法,rear指向队尾元素的后一个位置。Q.front==(Q.rear+1)%maxsize时队满
Q.frontQ.rear时为空。
(2)设置标志位tag,入队时,tag=1,出队时tag=0,因此,由入队导致front
rear时,队满,由出队导致frontrear时,队空
(3)设置一个表示存储元素个数的变量,如s,
当s
maxsize时,队满,s==0时,队空。

3 实际过程中可能还会遇到特殊规定的队列,如近几年王道上出现的,双端队列一端受限的问题。
如a,b,c依次入双端队列
双端队列一端输入受限,一端输出受限则同于一般队列,出队顺序为a,b,c.
双端队列,两端均可入队,仅有左端可出队,则出队顺序有
abc : abc均从右侧入队,从左侧出队
acb : a入队,a出队,bc从左侧入队,再从左侧出队
bac : a右侧入队,b左侧入队,c右侧入队,再依次从左边出队。
bca : a入队,b左侧入队再出队,c左侧入队再出队,a出队。
cab : a,b依次右侧入队,c左侧入队,再依次从左侧出队。
cba : abc依次从左侧入队,再从左侧出队
类似情况具体问题具体分析即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值