重要提示:请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
首页 > 公务员
网友您好,请在下方输入框内输入要搜索的题目:
搜题
拍照、语音搜题,请扫码下载APP
扫一扫 下载APP
题目内容 (请给出正确答案)
[主观题]

若循环队列以数组Q[0,…,m-1]作为其存储结构,变量rear表示循环队列中队尾元素的实际位置,其移动按

rear=(rear+1)mod m进行,变量length表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是(67)。

A.rear-length

B.(rear-length+m)mod m

C.(1+rear+m-length)mod m

D.m-length

答案

C
解析:这种题目在考场上最好的解题方法是随便拿一个实际的例子,往里面一套便知道了。不过,作为试题分析,下面解释一下原理。循环队列就是将实现队列的数组a[m]的第一个元素a[0]与最后一个元素a[m-1]连接起来。队空的初态为head=tail=0。在循环队列中,当tail赶上head时,队列满。反之,当head赶上tail时,队列变为空。这样队空和队满的条件都同为head=tail,这会给程序判别队空或队满带来不便。因此,可采用当队列只剩下一个空闲结点的空间时,就认为队列已满的简单办法,以区别队空和队满。即对空的判别条件是head=tail,队满的判别条件是head=tail+1。因为rear表示的是队列尾元素的实际位置(注意:不是队尾指针)。而且题中有“移动按rear=(rear+1)modm进行”,这说明队列存放元素的顺序为:e[1],Q[2],…,Q[m-1],Q[0]。在理想情况下,rear-length+1能算出队首元素的位置,例如,当m=8,rear=-5,length=2时,rear-length+1=4,4就是正确的队首元素实际位置。但rear-length+1有一种极端情况无法处理,例如,当m=8,rear=1,length=5时,无法算出队首元素的实际位置,所以必须使用(1+rear+m-length)modm方法来计算。

更多“若循环队列以数组Q[0,…,m-1]作为其存储结构,变量rear表示循环队列中队尾元素的实际位置,其移动按”相关的问题

第1题

设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R
总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。

A.R-F

B.F-R

C.(R-F+M)%M

D.(F-R+M)%M

点击查看答案

第2题

设数组a[M](M为最大空间个数)作为循环队列Q的存储空间,front为队头指针(指向第一个存放数据的
设数组a[M](M为最大空间个数)作为循环队列Q的存储空间,front为队头指针(指向第一个存放数据的

位置),rear为队尾指针(指向最后一个存放数据位置的下一个),则判定Q队列的队满条件是_____________。

点击查看答案

第3题

若用一个大小为6的数组来实现循环队列,且当前:rear和front的值分别为0和3,当从队列中删除一个元
素,再加入两个元素后,rear和front的值分别为多少?()

A.1和5

B.2和4

C.4和2

D.5和1

点击查看答案

第4题

若用一个大小为6的数组来实现循环队列,且当前队尾指针rear和队头指针front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()。

A.1和5

B.2和4

C.4和2

D.5和1

点击查看答案

第5题

设以数组se[m]存放循环队列的元素,同时设变量rear和front分别作为队头队尾指针,且队头指针指向队头前一个位置,写出这样设计的循环队列入队和出队算法。

点击查看答案

第6题

如果希望循环队列中的向量单元都能得到利用,则可设置一个标志域tag,每当尾指针和头指针值相同时,
以tag的值为O或1来区分队列状态是“空”还是“满”.请对下列函数填空,使其分别实现与此结构相应的入队列和出队列的算法.

intEnQueue(CirQueue*Q,DataType x)

{

if Q->tag==1 return 0;

Q->data[Q->rear]=x;

Q->rear=(Q->rear+1)%MAXQSIZE

if(Q->rear==Q->front)Q->tag=1

return1:

}

intDeQueue(CirQueue*Q,DataType*x)

{

if((1))return0;

*x=Q->data[Q->front];

Q->front= (2) ;

(3) ;

return1;

}

(1)

(2)

(3)

点击查看答案

第7题

设循环队列存储数组的下标是0~maxSize-1,其队尾指针和队头指针分别为rear和front,则队列中的元素个数为()。
设循环队列存储数组的下标是0~maxSize-1,其队尾指针和队头指针分别为rear和front,则队列中的元素个数为()。

A、q.rear-q.front

B、q.rear-q.front+1

C、(q.rear-q.front)%maxSize+1

D、(q.rear-q.front+maxSize)%maxSize

点击查看答案

第8题

循环队列sq中,用数组elem[0··25]存放数据元素,sq.front指示队头元素的前一个位置,sq.rear指示队尾元素的当前位置,设当前sq.front为20,sq.rear为12,则当前队列中的元素个数为()。

A.8

B.16

C.17

D.18

点击查看答案

第9题

在循环队列Q中,如果用Q.rear==Q.front作为队列为空的条件,则在设置一个空队列时,只需给Q.rear和Q.front赋予同一个值,不管什么值都可以。()
在循环队列Q中,如果用Q.rear==Q.front作为队列为空的条件,则在设置一个空队列时,只需给Q.rear和Q.front赋予同一个值,不管什么值都可以。()

此题为判断题(对,错)。

点击查看答案

第10题

设一个准对角矩阵Am×n行、列的下标分别从0到n-l,它的对角线上有1个m阶方阵A0,A1,…
,A1-i,如图4-16所示,且m×t=n。现在要求把矩阵A中这些方阵中的元素按行存放在一个一维数组B中,B的下标从0到n×m-1,设A中元素A[0][0]存于B[0]中:

(1)试给出i和j的取值范围;

(2)试给出通过i和j求解k的公式.

点击查看答案

第11题

容量为m的循环队列Q,队尾位置是rear,则入队时对rear的操作是()。

A.Q.rear=Q.rear-1

B.Q.rear=(Q.rear-1)%m

C.Q.rear=Q.rear+1

D.Q.rear=(Q.rear+1)%m

点击查看答案
下载APP
关注公众号
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)

订单号:

遇到问题请联系在线客服

请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示:请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
请用微信扫码测试
优题宝