原理:queue 佇列也是乙個線性儲存表,元素資料的插入在表的一端進行,在另一端刪除,從而構成了乙個先進先出fifo(first in first out)表。
隊頭&隊尾:插入一端稱為隊尾,刪除一端稱為隊首。
c++佇列是一種容器介面卡,預設使用雙端佇列deque來實現,將 deque 容器轉換為 queue 容器。當然,也可以利用其他合適的序列容器作為底層實現queue容器。
佇列可以用線性表(list)或雙向佇列(deque)來實現(注意vector container不能用來實現queue,因為vector 沒有成員函式pop_front!):
queue> q1;
queue> q2;
其成員函式有「判空(empty)」 、「尺寸(size)」 、「首元(front)」 、「尾元(backt)」 、「加入佇列(push)」 、「彈出佇列(pop)」等操作。
c++ stl對queue佇列的泛化,是通過模板型別,將預設的deque雙端佇列型別匯入,在內部建立乙個序列容器物件,來處理 queue佇列的資料儲存和操作,包括queue佇列是否為空、取隊首元素、取隊尾元素、元素入隊和元素出隊等。由於僅需要取隊首和隊尾元素的操作,因此queue佇列容器並不提供任何型別的迭代器。
定義queue 物件的示例**如下:
queueq1;
queueq2;
queue 的基本操作有:
入隊,如例:q.push(x); 將x 接到佇列的末端。
出隊,如例:q.pop(); 彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。
訪問隊首元素,如例:q.front(),即最早被壓入佇列的元素。
訪問隊尾元素,如例:q.back(),即最後被壓入佇列的元素。
判斷佇列空,如例:q.empty(),當佇列空時,返回true。
訪問佇列中的元素個數,如例:q.size()
#include int main()
c 實現佇列
主要是想聯絡一下c 中的模板怎麼使用,隨便複習一下佇列。佇列最基本的資料結構元素先進先出,這些就不多說了。注意 寫程式時copy建構函式和copy賦值函式的寫法。include includeusing namespace std templateclass queueitem queueitem ...
C 實現佇列
像棧一樣,佇列 queue 也是表。然而,使用佇列時插入在一端進行而刪除則在另一端進行,也就是先進先出 fifo 佇列的基本操作是enqueue 入隊 它是在表的末端 叫做隊尾 rear 插入乙個元素 還有dequeue 出隊 它是刪除 或返回 在表的開頭 叫做隊頭 front 的元素。同樣,佇列也...
c 實現佇列
佇列是一種線性結構,具有先進先出的特點,以下是3種佇列基本操作的c 鏈式佇列 include include using namespace std vector a class node class linkqueue 初始化佇列 void linkqueue initqueue linkqueu...