佇列的鏈式儲存結構

2021-08-15 01:45:02 字數 1335 閱讀 8653

佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,我們把它簡稱為鏈佇列。為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點,如下圖所示:

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

鏈佇列的結構為:

typedef int qelemtype;

typedef struct qnode

qnode,*queueptr;

typedef struct //佇列的鍊錶結構

linkqueue;

1.入隊操作

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

**如下:

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

int enqueue(linkqueue *q, qelemtype e)

s->data = e;

s->next = null;

q->rear->next = s; //把擁有元素e的新結點s賦值給原隊尾結點的後繼

q->rear = s; //把當前的s設定為隊尾結點,rear指向s

return ok;

}

2.出隊操作

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

**如下:

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

int dequeue(linkqueue *q, qelemtype *e)

p = q->front->next; //將欲刪除的隊頭結點暫存給p

*e = p->data; //將欲刪除的隊頭結點的值賦值給e

q->front->next = p->next; //將原隊頭結點後繼p->next賦值給頭結點

if(q->rear == p) //若隊頭是隊尾,則刪除後將rear指向頭結點

free(p);

return ok;

}

佇列的鏈式儲存結構

佇列的鏈式儲存結構可以建立乙個頭結點,乙個指向頭結點的指標front,乙個指向尾節點的指標rear。新增乙個節點的時候將rear指向新節點,取乙個節點的時候將front指向下個節點的下乙個節點。佇列鏈式儲存.cpp 定義控制台應用程式的入口點。include stdafx.h struct link...

佇列的鏈式儲存結構

1 佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,簡稱為鏈佇列。為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點。空佇列時,front和rear都指向頭結點。鏈佇列的結構為 include using namespace std define ok ...

佇列的鏈式儲存結構

1.定義 佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,我們把它簡稱為鏈佇列。隊頭指標指向鏈佇列的頭結點,隊尾指標指向終端結點。空佇列時,front和rear都指向頭結點 2.入隊操作 e 把插入的資料賦值給插入的結點的資料域 s next null 插入結點的指標域為空 q...