佇列,一種特殊的線性表
特點:只允許在一端輸入,在另一端輸出。輸入端稱為隊尾,輸出端稱為隊頭
因此,佇列,又稱為先進先出表(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...