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...