# 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个元素赋值。
添加回答
举报
0/150
提交
取消
