鏈表隊列出隊算法

出隊操作

  我們來思考這個過程,在下圖隊列中,我們出隊的第一個元素是元素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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章