C 實現佇列

2021-06-21 10:58:43 字數 798 閱讀 7846

像棧一樣,佇列(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...