佇列的鏈式儲存(C語言實現)

2021-10-12 06:25:02 字數 1540 閱讀 1351

是一種先進先出的線性表,只允許在表的一端進行插入,而在另一端刪除元素。和日常的排隊一致。允許插入的一端叫做隊尾,允許刪除的一端叫做隊頭。(尾進頭出)

typedef struct qnode qnode, *qptrl; 

typedef struct *linkqueue;

//初始化佇列 

linkqueue initqueue(linkqueue q)

//入隊函式 

linkqueue enqueue(linkqueue q, elemtype *e)

定義乙個新的指向結構體的指標p,儲存存入的值,並指向空處,並且原來隊尾指向它,使p作為新的隊尾。

記得最後隊尾指標需要改變(指向p)。

//出隊函式 

linkqueue dequeue(linkqueue q, elemtype *e)

刪除佇列頭元素演算法中的特殊情況,一般情況下,刪除佇列頭元素時僅需修改結點中的指標,但當佇列中最後乙個元素被刪後,佇列尾指標也丟失了,因此需要對隊尾指標重新賦值(指向頭節點)。

//取隊頭元素 

linkqueue gethead(linkqueue q, elemtype *e)

//呼叫入隊功能函式

linkqueue use_enqueue(linkqueue q)

printf("\n");

}

#include #include #define maxsize 100

#define overflow -1

#define status int

#define bool int

#define true 1

#define flase 0

#define elemtype int

typedef struct qnode qnode, *qptrl;

typedef struct *linkqueue;

//初始化佇列

linkqueue initqueue(linkqueue q)

//入隊函式

linkqueue enqueue(linkqueue q, elemtype *e)

//出隊函式

linkqueue dequeue(linkqueue q, elemtype *e)

//取隊頭元素

linkqueue gethead(linkqueue q, elemtype *e)

//選單

void menu()

//呼叫入隊功能函式

linkqueue use_enqueue(linkqueue q)

printf("\n");

} int main()

} return 0;

}

C語言實現鏈式佇列

鏈式佇列,簡稱 鏈佇列 即使用鍊錶實現的佇列儲存結構。鏈式佇列的實現思想同順序佇列類似,只需建立兩個指標 命名為 top 和 rear 分別指向鍊錶中佇列的隊頭元素和隊尾元素,如下圖所示 所示為鏈式佇列的初始狀態,此時佇列中沒有儲存任何資料元素,因此 top 和 rear 指標都同時指向頭節點。在建...

鏈式佇列 C語言實現

鏈式佇列的儲存結構 我們知道,佇列是操作受限制的線性表,佇列有隊頭和隊尾,插入元素的一端稱為隊頭,刪除元素的一端稱為隊尾。練市佇列的隊頭指標指向當前佇列的隊頭結點位置,隊尾指標指向佇列的當前隊尾結點位置。對於不帶頭結點的鏈式佇列,出佇列時可直接刪除隊頭指標所指的結點,因此,鏈式佇列不帶頭結點更方便。...

C語言實現鏈式佇列

include link queue.h 建立入列 出列顯示所有資料 是否為空 釋放佇列 建立1 void create link queue 1 plinkqueue h h len 0 h header null h tail null 建立2 void create link queue 2 ...