佇列的鏈式儲存結構,其實就是線性表的單鏈表, 只不過它只能尾進頭出而已,叫做鏈佇列
為了方便,將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點
空佇列的時候,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...