队列及其相关题解

1.若用数组A[0...5]来实现循环队列,且当前rear和front的值分别为1和5,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为( )。

A. 3和4   B.3和0   C.5和0  D.5和1

front=5 循环队列,当出队列(删除)时front=(front+1)%6=0

rear=1,每次入队列(加入)时 rear=(rear+1)%6=2 ,每二次再加入元素时rear=(2+1)%6=3

正确答案为B

2.

循环队列放在一维数组A[0...M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空。下列判断队空和队满的条件中,正确的是( )。

A.队空:end1==end2;队满:end1==(end2+1)mod M

B.队空:end1==end2;队满:end2==(end1+1)mod (M-1)

C.队空:end2==(end1+1) mod M;队满:end1==(end2+1) mod M

D.队空:end1==(end2+1) mod M;队满:end2==(end1+1)mod (M-1)

解:数组中可以容纳M个元素,队列中最多容纳M-1个元素,说明当队列满时要空出一个元素的位置,少占用一个空间;这里两个指针就是换了名字,end1就相当于front,end2就相当于rear,所以正确答案为A 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值