大話資料結構C語言 17 鏈式佇列及其C語言實現

2021-10-25 10:40:29 字數 1111 閱讀 6551

佇列的鏈式儲存結構,其實就是線性表的單鏈表, 只不過它只能尾進頭出而已,叫做鏈佇列

為了方便,將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點

空佇列的時候,front和rear都指向頭結點

鏈佇列的結構為:

typedef

int qelemtype;

/* qelemtype型別根據實際情況而定,這裡假設為int */

typedef

struct qnode /* 結點結構 */

qnode,

*queueptr;

typedef

struct

/* 佇列的鍊錶結構 */

linkqueue;

入隊操作:入隊操作,其實就是在鍊錶的尾部插入結點

其**如下:

/* 插入元素e為q的新的隊尾元素 */

status enqueue

(linkqueue *q,qelemtype e)

對應的出隊操作:

出隊操作,就是頭結點的後繼結點出隊,將頭結點的後繼改為它後邊的結點,若煉表除頭結點外只剩乙個元素時,則需將rear指向頭結點

其**如下:

/* 若佇列不空,刪除q的隊頭元素,用e返回其值,並返回ok,否則返回error */

status dequeue

(linkqueue *q,qelemtype *e)

c語言資料結構實現 鏈式佇列

鏈式佇列由環形鍊錶實現,通過煉表頭和鍊錶尾的操作,完成了隊列入列出列的功能。如圖所示,空佇列時至少需要乙個空節點,表示為佇列頭和佇列尾,相當於哨兵的作用 入列 新增節點插入到佇列尾,並更新 tail 指標 出列 更新 head 位置,釋放原來 head節點,返回現有位置的 data 相關資料結構 s...

c 資料結構 鏈式佇列

1.標頭檔案 includeusing namespace std struct linknode linknode const int x,linknode ptr null date x link ptr class linkedqueue 建構函式 構造空佇列 void makeempty 將...

資料結構 鏈式佇列 C

用鍊錶搭建的棧與佇列相對簡單,佇列的特點是先進先出,不囉嗦了,由於 比較簡單,相信光顧的人不會太多,下面直接貼 標頭檔案1 ifndef queueli h 2 define queueli h 34 template 5class queue625 26 listnode front 27 lis...