循環(huán)數(shù)組實(shí)現(xiàn)隊列_第1頁
循環(huán)數(shù)組實(shí)現(xiàn)隊列_第2頁
循環(huán)數(shù)組實(shí)現(xiàn)隊列_第3頁
循環(huán)數(shù)組實(shí)現(xiàn)隊列_第4頁
循環(huán)數(shù)組實(shí)現(xiàn)隊列_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、隊列是一種特殊的線性表,特殊之處在于它只允許在表的前端(front)進(jìn)行刪除操作,而在表的后端(rear)進(jìn)行插入操作,和棧一樣,隊列是一種操作受限制的線性表。進(jìn)行插入操作的端稱為隊尾,進(jìn)行刪除操作的端稱為隊頭。先進(jìn)先出其有兩種存儲形式:鏈?zhǔn)胶脱h(huán)數(shù)組存儲填寫圖片摘要(選填)存儲結(jié)構(gòu):循環(huán)數(shù)組存儲結(jié)構(gòu)類:填寫圖片摘要(選填)相關(guān)函數(shù)的實(shí)現(xiàn):templateMyQueue:MyQueue()q = new myq;q->ele = new TMax;templateMyQueue:MyQueue()delete q;deleteq->ele;templatevoid MyQueue:

2、MakeNull()q->head = q->rear = 0;templatebool MyQueue:IsEmpty()if (q->rear = q->head)return true;elsereturn false;templatebool MyQueue:IsFull()if (q->rear + 1) % Max = q->head)return true;elsereturn false;templatevoid MyQueue:EnQueue(T t)if (IsFull()cout << "隊滿"elseq

3、->rear = (q->rear + 1) % Max;q->eleq->rear = t;/cout<<t<<"入隊"<<endl;templateT MyQueue:DeQueue()if (IsEmpty()cout << "隊空!" << endl;return NULL;else q->head = (q->head + 1) % Max;/ cout<<q->head<<"head"<<

4、;endl;/cout<<q->eleq->head<<"出隊"<<endl;return q->eleq->head;templateint MyQueue:lengthq()return  (q->rear - q->head + Max) % Max;可運(yùn)行程序:#include#define Max 30using namespace std;templatestruct myqint head, rear;T *ele;templateclass MyQueuepublic:MyQu

5、eue();MyQueue();void MakeNull();            /將隊列置空bool IsEmpty();             /判斷是否為空bool IsFull();              /判斷是否滿void EnQueue(T);            /入隊T DeQueue();    

6、;            /出隊int lengthq();               /隊列的長度private:myq *q;templateMyQueue:MyQueue()q = new myq;q->ele = new TMax;templateMyQueue:MyQueue()delete q;deleteq->ele;templatevoid MyQueue:MakeNull()q->head = q->rear = 0;te

7、mplatebool MyQueue:IsEmpty()if (q->rear = q->head)return true;elsereturn false;templatebool MyQueue:IsFull()if (q->rear + 1) % Max = q->head)return true;elsereturn false;templatevoid MyQueue:EnQueue(T t)if (IsFull()cout << "隊滿"elseq->rear = (q->rear + 1) % Max;q->

8、;eleq->rear = t;/cout<<t<<"入隊"<<endl;templateT MyQueue:DeQueue()if (IsEmpty()cout << "隊空!" << endl;return NULL;else q->head = (q->head + 1) % Max;/ cout<<q->head<<"head"<<endl;/cout<<q->eleq->head&l

9、t;<"出隊"<<endl;return q->eleq->head;templateint MyQueue:lengthq()return  (q->rear - q->head + Max) % Max;int main()MyQueue myqueue;myqueue.MakeNull();cout << "20個數(shù)入隊:" << endl;for (int i = 0; i<20; i+)myqueue.EnQueue(i);cout << "當(dāng)前隊列長度:" << myqueue.lengthq() << endl;cout << "隊列出隊,輸出" << end

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論