数据结构基础问题出队 void DeQueue(QUEUE*Q,QueueEntry *item){if (QueueEmpty(*Q)) exit(“Queue is empty.”);else {Q->front=(Q->front+1)%MAX_QUEUE;*item=Q->item[Q->front];}}中Q->front=(Q->front+1)%MAX_QUEUE 为什么他可以使队头元素

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/12 20:49:20
数据结构基础问题出队 void DeQueue(QUEUE*Q,QueueEntry *item){if (QueueEmpty(*Q)) exit(“Queue is empty.”);else {Q->front=(Q->front+1)%MAX_QUEUE;*item=Q->item[Q->front];}}中Q->front=(Q->front+1)%MAX_QUEUE 为什么他可以使队头元素
xRoPW :Dc .i1lNpؠ9(s?:DGv-e>_-ܞ;|7t,sذNDޱ*H3/W#>ʯB|!Op/eټr:'XׄJq?YI>/b?|N Q9'iP@b2Et)#J`HV)ZZy&0u} =Ayz%̡iQpٍփH 8岓 "]DU i\gѰ ۢF!aIDDOfɵF⎧N4- =pv#}k-؇Pu¹u~9i*A(Jj>!ceyx 2؀ 5CTT"e%mD J O%WD1z 2c[m ۤ(d*<_%u

数据结构基础问题出队 void DeQueue(QUEUE*Q,QueueEntry *item){if (QueueEmpty(*Q)) exit(“Queue is empty.”);else {Q->front=(Q->front+1)%MAX_QUEUE;*item=Q->item[Q->front];}}中Q->front=(Q->front+1)%MAX_QUEUE 为什么他可以使队头元素
数据结构基础问题
出队
void DeQueue(QUEUE*Q,QueueEntry *item)
{
if (QueueEmpty(*Q)) exit(“Queue is empty.”);
else {
Q->front=(Q->front+1)%MAX_QUEUE;
*item=Q->item[Q->front];
}
}
中Q->front=(Q->front+1)%MAX_QUEUE 为什么他可以使队头元素删除?

数据结构基础问题出队 void DeQueue(QUEUE*Q,QueueEntry *item){if (QueueEmpty(*Q)) exit(“Queue is empty.”);else {Q->front=(Q->front+1)%MAX_QUEUE;*item=Q->item[Q->front];}}中Q->front=(Q->front+1)%MAX_QUEUE 为什么他可以使队头元素
把队列想像成一个环形的结构,这样就不会造成假溢出(Q->rear=Maxsize,而Q->front!=0,数组在0到Q->front这段下标里面还可以存数据),想像成一个环形的结构,那么Q->front自增1就不是Q->front=(Q->front+1)了,因为我们要当Q->front=Maxsize的时候再加1就要变成Q->front=0,所以用取模的方式.Q->front=(Q->front+1)%MAXsize,当Q->front小于MAXsize时,增量是1,当Q->front大于MAXsize时,Q->front从0开始增加