佇列的鏈式儲存結構及實現

2021-09-24 02:13:35 字數 1119 閱讀 6867

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

為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,將隊尾指標指向終端結點,如下圖所示:

空佇列時,頭尾指標都指向頭結點,如下圖所示:

鏈佇列的結構為:

typedef int qelemtype; /* qelemtype 型別根據實際情況而定 */

typedef struct qnode /* 結點結構 */

qnode, *queueptr;

typedef struct /* 佇列的鍊錶結構 */

linkqueue;

鏈佇列的入列操作:

入隊操作時,其實就是在鍊錶尾部插入結點,如圖所示:

**如下:

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

stauts enqueue (linkqueue *q, qelemtype e)

鏈棧的出隊操作:

出隊操作時,就是頭結點的後繼結點出隊。若煉表除頭結點外只剩乙個元素時,則需將rear指向頭結點,如圖所示:

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

status dequeue(linkqueue *q, qelemtype *e)

迴圈佇列與鏈佇列比較,時間上,它們的基本操作都是o(1);對於空間上來說,迴圈佇列必須有乙個固定的長度,所以可能存在空間浪費的問題。因此,在可以預估佇列長度時,建議用迴圈佇列。如果無法預估,建議使用鏈佇列。

佇列的鏈式儲存結構及實現

佇列的鏈式儲存結構其實就是線性表的單鏈表,只不過它只能尾進頭出,也稱為鏈佇列。為了操作方便講隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端節點。空佇列是這樣 下面使用 演示 include include include typedef struct node node,pnode typedef ...

佇列的鏈式儲存結構及實現

在之前講解了順序佇列,接下來講解佇列的鏈式儲存結構及實現 在佇列的鏈式儲存中我們將隊頭指標指向單鏈表的頭結點,隊尾指標指向終端節點 在隊列為空時,front和rear都指向頭結點 鏈佇列的結構為 define maxsize 1000 define ok 1 define error 0 defin...

佇列的鏈式儲存結構以及實現

佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,通常簡稱為鏈佇列。為了操作上的方便,將隊頭指標指向鏈佇列的頭結點,隊尾指標指向終端結點。當隊列為空時,front和rear都指向頭結點。鏈佇列的結構定義如下所示 typedef int qelemtype qnode代表佇列中元素...