作业帮 > 综合 > 作业

请问这句话是啥意思?..

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/06 13:34:41
请问这句话是啥意思?..
if(front==(rear+1)%MAXSIZE
这是循环队列入队操作的算法中的一句,是一个判定条件.不太懂百分号的含义,还有请通俗的说一下~
if(front==(rear+1)%MAXSIZE)少了半个括号.没有错.
请问这句话是啥意思?..
因为在循环队列中,当队尾指针加1(即rear+1)可能会超过
最大队列长度(MAXSIZE),通过求余运算就可以使rear+1在0--MAXSIZE
范围内.比如循环队列的地址为0 1 2 3 4 5 ,front为0,rear为5,当rear
加上1后为6超过了0---5的围,因为是循环队列,本来应该是从0到5,而5过
后接着是0,通过(rear+1)%MAXSIZE,即(5+1)%6=0,就可以实现.
if(front==(rear+1)%MAXSIZE)未少括号,(rear+1)是一个整体,而%
的优先级高于==,所以(rear+1)先与MAXSIZE结合,即先算(rear+1)%MAXSIZE,
然后是front == (rear+1)%MAXSIZE,由此式得到的值为0或1,然后再执行
if( 表达式的值 ).这句话的意思是,判断队头和队尾是否相等,
即判断队列是否已满