对循环队列的理解

循环队列存储在数组A[0…n-1]中,其头尾指针分别为f和r,头指针f总是指向队头元素,尾指针r总是指向队尾元素的下一个位置,则元素e入队时的操作为(B )。
A.A[r]=e; r=r+1
B.A[r]=e; r=(r+1)%n
C.A[r]=e;r=(r+1)%(n+1)
D.r=(r+1)%n; A[r]=e;

循环队列,头指针front,尾指针rear,在数组中增加一个元素,尾指针加1,想要达到循环的效果,就让rear+1对整个队列空间取余即可,将数再次放入这个队列中。

循环队列存储在数组A[0…m]中,则入队时的操作为(D)
A.rear=rear+1
B.rear=(rear+1)mod(m-1)
C.rear=(rear+1)mod m
D.rear=(rear+1)mod(m+1)

rear=(rear+1)%(m+1) //m+1代表有m+1个空间。。它是0到m的数组

循环队列是解决假溢出的问题,通常把一维数组看成首尾相接。在循环意义下的加1运算通常用求模运算来实现。所以入队和出队时的操作分别为:rear=(rear+1)%m,front=(front+1)%m。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值