像棧一樣,佇列(queue)也是表。然而,使用佇列時插入在一端進行而刪除則在另一端進行,也就是先進先出(fifo)。佇列的基本操作是enqueue(入隊),它是在表的末端(叫做隊尾(rear))插入乙個元素;還有dequeue(出隊),它是刪除(或返回)在表的開頭(叫做隊頭(front))的元素。
同樣,佇列也可以由鍊錶或陣列實現,特點分析如下:
鍊錶:不需要設定空間大小,也不會浪費空間;插入或刪除時需要動態分配或刪除記憶體,比較耗時;不支援隨機訪問;
陣列:需要預知需要空間的大小,會造成空間浪費或不夠用;插入或刪除不需要動態分配或刪除記憶體,耗時很小;支援隨機訪問。
另外,佇列又有鏈式佇列和迴圈佇列兩種。本文給出用單鏈表實現的鏈式佇列(迴圈佇列可類似地用迴圈列表實現)和用陣列實現的迴圈佇列(當陣列空間夠大時,鏈式佇列和迴圈佇列是一樣的)。
//c++實現佇列
#include
using namespace std;
template
struct node
;template
class queue
;templatequeue::queue()
templatevoid queue::push(t data1)
}templatevoid queue::pop()
}templatevoid queue::display()
}else
cout<<"佇列是空的"templatequeue::~queue()
delete head;
head=null;
}int main()
c 實現佇列
主要是想聯絡一下c 中的模板怎麼使用,隨便複習一下佇列。佇列最基本的資料結構元素先進先出,這些就不多說了。注意 寫程式時copy建構函式和copy賦值函式的寫法。include includeusing namespace std templateclass queueitem queueitem ...
c 實現佇列
佇列是一種線性結構,具有先進先出的特點,以下是3種佇列基本操作的c 鏈式佇列 include include using namespace std vector a class node class linkqueue 初始化佇列 void linkqueue initqueue linkqueu...
C 佇列實現
原理 queue 佇列也是乙個線性儲存表,元素資料的插入在表的一端進行,在另一端刪除,從而構成了乙個先進先出fifo first in first out 表。隊頭 隊尾 插入一端稱為隊尾,刪除一端稱為隊首。c 佇列是一種容器介面卡,預設使用雙端佇列deque來實現,將 deque 容器轉換為 qu...