佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,通常簡稱為鏈佇列。為了操作上的方便,將隊頭指標指向鏈佇列的頭結點,隊尾指標指向終端結點。
當隊列為空時,front和rear都指向頭結點。
鏈佇列的結構定義如下所示:
typedef
int qelemtype;
//qnode代表佇列中元素的結點
//queueptr指標指向當前鏈佇列
typedef
struct qnode qnode, *queueptr;
//定義鏈佇列的結構
typedef
struct
linkqueue;
鏈佇列的初始化:
linkqueue *initqueue()
鏈佇列的入隊操作:
//鏈佇列的入隊操作
bool enqueue(linkqueue *q, qelemtype e)
s->
data
= e;
s->next =
null;
q->rear->next = s;
q->rear = s;
cout << e << endl;
return
true;
}
鏈佇列的出隊操作:
//鏈佇列的出隊操作
bool dequeue(linkqueue *q, qelemtype *e)
p = q->front->next;
*e = p->
data;
q->front->next = p->next;
if (q->rear == p)
cout <<
*e << endl;
delete p;
return
true;
}
主函式中測試**如下:
int main()
int temp = 0;
//出隊的元素
cout
<< "出隊的元素:"
<< endl;
for (auto i = 0; i < 4; i++)
return
0;}
輸出如下所示:
資料結構 佇列的鏈式儲存結構以及實現
佇列也是一種特殊的線性表,只允許在一端進行插入操作,在另一端進行刪除操作。允許插入的一段為對尾,允許刪除的一端為隊頭。本次記錄的是佇列的鏈式儲存結構以及實現。該儲存結構有兩個指標,乙個指向頭節點,稱為頭指標 front 乙個指向隊尾,稱為尾指標 rear 當front rear時,表示空佇列。當需要...
佇列的鏈式儲存結構及實現
佇列的鏈式儲存結構其實就是線性表的單鏈表,只不過它只能尾進頭出,也稱為鏈佇列。為了操作方便講隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端節點。空佇列是這樣 下面使用 演示 include include include typedef struct node node,pnode typedef ...
佇列的鏈式儲存結構及實現
佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,稱之為鏈佇列。為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,將隊尾指標指向終端結點,如下圖所示 空佇列時,頭尾指標都指向頭結點,如下圖所示 鏈佇列的結構為 typedef int qelemtype qelemtype 型別...