佇列 迴圈佇列(C )

2021-08-16 12:08:00 字數 1119 閱讀 3789

定義

佇列(queue)

是只允許在一端進行插入操作,在另一端進行刪除操作的線性表。遵守先進先出的規則。

資料儲存方式

順序儲存結構:這種結構事先要基本確定佇列的大小,不支援動態分配儲存空間,所以插入和刪除元素比較省時,但是會造成空間的浪費。為了節省空間,引入了迴圈佇列,本質上也是順序儲存結構。

鏈式儲存結構:可以不需要事先知道佇列的大小,支援動態和釋放空間,但是插入和刪除操作比較耗時,也稱鏈佇列。

*當事先基本上確定佇列的大小,且插入和刪除操作比較頻繁時,優先考慮迴圈佇列。

迴圈佇列的實現

#include using namespace std;

template class queue

;//建構函式

//輸入引數:size佇列容量

template queue::queue(int maxsize):front(0),rear(0)

data=new datatype[maxsize];

if(data==null)

capacity=maxsize;

}//析構函式

templatequeue::~queue()

}//查詢迴圈佇列容量

templateint queue::getsize()

//入隊

templatevoid queue::enqueue(datatype x)

else }

//出隊

templatedatatype queue::dequeue()

//獲取隊首資料

templatedatatype queue::getfront()

//獲取隊尾資料

templatedatatype queue::getrear()

//判斷佇列是否為空

templatebool queue::isempty()

//判斷佇列是否為滿

templatebool queue::isfull()

templateint queue::getelementnum()

int main()

迴圈佇列 順序佇列(C )

佇列 queue 是一種限定訪問位置的線性變。他允許在表的一端插入,在另一端刪除。這個和計算機排程策略中的先來先服務fcfs first come first served 是一樣的。佇列中可以插入的一端為隊尾 rear 允許刪除的一端稱為隊頭 front 佇列也分為兩種,一種是用陣列的儲存表示,一...

c 迴圈佇列

wang 程式設計日記一 實現迴圈佇列 類模板方便以後使用 首先是虛基類,相當於宣告了幾個佇列的基本功能 template t class queue virtual bool enqueue const t x 0 virtual bool dequeue t x 0 virtual bool g...

佇列 迴圈佇列

迴圈佇列是乙個大小確定的特殊佇列,它的特殊體現在迴圈,之前提到的普通佇列,我們是用鍊錶來實現的,在這裡,由於迴圈佇列是乙個長度確定的佇列,所以我們可以拿順序表來實現。迴圈佇列的操作與普通佇列類似,不過不同的地方在於當rear走到capacity 1並且front在0號元素位置的時候,當此時再有元素入...