佇列的鏈式儲存結構

2021-07-16 12:44:11 字數 1222 閱讀 8691

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

---- 為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點

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

鏈佇列的結構為:

#include using namespace std;

#define ok 1

#define error 0

#define maxsize 100

typedef int status;

typedef int qelemtype;

typedef struct qnode //結點結構

qnode,*queueptr;

typedef struct //佇列的鍊錶結構

linkqueue;

入隊操作 -- 在鍊錶尾部插入結點。        出隊操作 -- 頭結點的後繼結點出隊,將頭結點的後繼改為它後面的結點。

若煉表除頭結點外只剩乙個元素時,則需將rear指向頭結點。

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

status enqueue(linkqueue *q,qelemtype e)

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

status dequeue(linkqueue *q,qelemtype *e)

對於迴圈佇列和鏈佇列的比較,可以從兩方面來考慮:

---- 從時間上,它們的基本操作都是常數時間,即都是o(1)的,不過迴圈佇列是事先申請好空間,使用期間不釋放。

而對於鏈佇列,每次申請和釋放結點也會存在一些時間開銷,如果入隊出隊頻繁,則兩者還是有細微差異。

---- 對於空間上來說,迴圈佇列必須有乙個固定的長度,所以就有了儲存元素個數和空間浪費的問題。鏈佇列不存在這個問題,

儘管它需要乙個指標域,會產生一些空間上的開銷,但還可以接受。所以在空間上,鏈佇列更加靈活。

---- 總的來說,在可以確定佇列長度最大值的情況下,建議用迴圈佇列,否則用鏈佇列。

佇列的鏈式儲存結構

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

佇列的鏈式儲存結構

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

佇列的鏈式儲存結構

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