循环队列存储在数组A[0..m]中,则入队时的操作为( )。

 我来答
刺任芹O
2022-11-16 · TA获得超过6.2万个赞
知道顶级答主
回答量:38.7万
采纳率:99%
帮助的人:8560万
展开全部

入队操作为:rear=(rear+1)%(m+1)。

循环队列的重要操作:

1、初始化:(MAXSIZE为最大队列长度)

Q.base=(QElemType*)malloc(MAXSIZE*sizeof(QElemType));

Q.front=Q.rear=0;

2、返回Q中元素的个数

return(Q.rear—Q.front+MAXSIZE)%MAXSIZE;

3、插入元素(队尾插入)

if((Q.rear+1)%MAXSIZE==Q.front)return ERROR;∥队满判断

Q.base[Q.rear]=e;

Q.rear=(Q.rear+1)%MAXSIZE;∥修改Q.rear的方法

∥Q.rear总是指向下一个可以插入新元素的位置。

4、删除元素(从队首删除)

If(Q.front==Q.rear)return ERROR;∥队空的判断

e=Q.base [Q.front];

Q.front=(Q.front+1)%MAXSIZE;

此题可知,MAXSIZE=m+1。

扩展资料

在循环队列结构中,当存储空间的最后一个位置已被使用而再要进入队运算时,只需要存储空间的第一个位置空闲,便可将元素加入到第一个位置,即将存储空间的第一个位置作为队尾。 [1]  循环队列可以更简单防止伪溢出的发生,但队列大小是固定的。

在循环队列中,当队列为空时,有front=rear,而当所有队列空间全占满时,也有front=rear。为了区别这两种情况,规定循环队列最多只能有MaxSize-1个队列元素,当循环队列中只剩下一个空存储单元时,队列就已经满了。

因此,队列判空的条件是front=rear,而队列判满的条件是front=(rear+1)%MaxSize。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式