数据结构基础问题出队 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 为什么他可以使队头元素](/uploads/image/z/7798194-18-4.jpg?t=%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E5%9F%BA%E7%A1%80%E9%97%AE%E9%A2%98%E5%87%BA%E9%98%9F+void+DeQueue%28QUEUE%2AQ%2CQueueEntry+%2Aitem%29%7Bif+%28QueueEmpty%28%2AQ%29%29+exit%28%E2%80%9CQueue+is+empty.%E2%80%9D%29%3Belse+%7BQ-%3Efront%3D%28Q-%3Efront%2B1%29%25MAX_QUEUE%3B%2Aitem%3DQ-%3Eitem%5BQ-%3Efront%5D%3B%7D%7D%E4%B8%ADQ-%3Efront%3D%28Q-%3Efront%2B1%29%25MAX_QUEUE+%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BB%96%E5%8F%AF%E4%BB%A5%E4%BD%BF%E9%98%9F%E5%A4%B4%E5%85%83%E7%B4%A0)
数据结构基础问题出队 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开始增加