为了账号安全,请及时绑定邮箱和手机立即绑定

我想问下循环队列,此段语句是什么意思?

我想问下循环队列,此段语句是什么意思?

# define maxsize 20typedef struct sqqueue{ DataType data [maxisize];int front ,rear;} SaQueueTp;SqQueueTp sq;此段语句是什么意思?sq.rear=(sq.rear+1)%maxsize;sq.data{sq.rear]=x;这两句我都不是很理解。 小弟C语言知识薄弱,还请大侠讲解,谢谢!
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

这是用数组来模拟循环队列,队列的性质是先进先出。该结构体中的data代表队列,data数组中的一个元素代表队列中的一个元素。
第一句sq.rear=(sq.rear+1)%maxsize;,rear表示后一个节点的编号,正常情况下,后一个节点编号都是比当前节点的编号大1,所以取sq.rear+1,而当到了最后一个节点,由于是循环队列,故它的下一个节点是第一个节点,其编号变为0,综合到一起,就可以通过(sq.rear+1)%maxsize这样一个表达式来表示下一个节点的编号。
第二句中有个小错误,左括号为方括号,而不是花括号。其含义为对队列的第rear个元素赋值。

查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 230 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号