出队操作
我们来思考这个过程,在下图队列中,我们出队的第一个元素是元素A,不是1。(因为1不是插入进来了的,而是我们初始化时就有的)。我们首先让*t等于head的next,即元素A。然后修改head的next指向为元素A的next。
这样head的next就会指向元素B。出队操作就完成了。
代码如下:
status delQueue(LinkQueue* que,QElemtype *t){if(que->rear==que->head)return ERROR; //队列为空QueuePtr p = que->head->next;*t=p->data;que->head->next=p->next;if(que->rear==p) //这个判断是 确保在清空队列的时候,让rear指针归位。que->rear=que->head;free(p);return OK;
}