链表队列出队算法
出隊操作
我們來思考這個過程,在下圖隊列中,我們出隊的第一個元素是元素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; }?
總結(jié)
- 上一篇: java 多线程 notify_Java
- 下一篇: C++ 文件写操作