資料結構之鏈式佇列以及C 實現與模板

2021-10-06 11:53:48 字數 1651 閱讀 8683

佇列,一種特殊的線性表

特點:只允許在一端輸入,在另一端輸出。輸入端稱為隊尾,輸出端稱為隊頭

因此,佇列,又稱為先進先出表(fifo),類似於生活中的排隊,先來的排在前頭,後來的排在後頭,乙個乙個辦理業務。

佇列有兩種,一種叫做迴圈佇列(順序佇列),另一種叫做鏈式佇列。

這一篇講的是鏈式佇列,迴圈佇列在另外一篇文章中

迴圈佇列講解與c語言實現鏈式佇列與單鏈表是有些類似的,只是多了乙個表頭(front)和乙個表尾(rear)。

front指向首結點,rear指向尾結點,如圖所示:

**具體實現的話,下面有兩種。一種是用c++的類進行實現的,一種是直接呼叫c++的模板即可。**一般使用肯定是直接呼叫容器的,這裡是為了熟悉佇列。

c++**實現

#include

using

namespace std;

//鏈式佇列

struct node};

class

queue

~queue()

}bool

isempty()

void

enqueue

(int x)

else

}bool

dequeue

(int

*px)}}

;int

main()

{ queue q;

q.enqueue(11

);q.enqueue(22

);q.enqueue(33

);q.enqueue(44

);int x;

q.dequeue

(&x)

; cout << x <

q.dequeue

(&x)

; cout << x <

q.dequeue

(&x)

; cout << x <

q.dequeue

(&x)

; cout << x <

q.dequeue

(&x)

; cout << x <

return

0;

直接使用佇列模板

#include

//標頭檔案

queue <

int> q;

入隊 q.

push

(x); 將x 接到佇列的末端。

出隊 q.

pop(

); 彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。

訪問隊首元素 q.

front

(),即最早被壓入佇列的元素。

訪問隊尾元素 q.

back

(),即最後被壓入佇列的元素。

判斷佇列是否空 q.

empty

(),當佇列空時,返回true。

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

佇列也是一種特殊的線性表,只允許在一端進行插入操作,在另一端進行刪除操作。允許插入的一段為對尾,允許刪除的一端為隊頭。本次記錄的是佇列的鏈式儲存結構以及實現。該儲存結構有兩個指標,乙個指向頭節點,稱為頭指標 front 乙個指向隊尾,稱為尾指標 rear 當front rear時,表示空佇列。當需要...

資料結構之鏈式佇列

我們實現了順序佇列,包括優化,現在我們再來學習下鏈式佇列。注 這裡還是要包含前面我們實現的鏈式鍊錶的標頭檔案和實現檔案。第十個例子,鏈式佇列的實現 標頭檔案 ifndef linkqueue h define linkqueue h typedef void linkqueue linkqueue ...

c語言資料結構實現 鏈式佇列

鏈式佇列由環形鍊錶實現,通過煉表頭和鍊錶尾的操作,完成了隊列入列出列的功能。如圖所示,空佇列時至少需要乙個空節點,表示為佇列頭和佇列尾,相當於哨兵的作用 入列 新增節點插入到佇列尾,並更新 tail 指標 出列 更新 head 位置,釋放原來 head節點,返回現有位置的 data 相關資料結構 s...