




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
15-11.隊列的基本概念2.循環(huán)隊列及其運(yùn)算3.循環(huán)隊列類4.隊列的應(yīng)用2.2.3隊列及其應(yīng)用15-21.什么是隊列定義:允許在一端進(jìn)行插入,而在另一端進(jìn)行刪除的線性表。(基于方法的定義)插入的一端為隊尾(rear),刪除的一端為隊頭(head)邏輯特征:FIFO,LILO要素(決定操作的細(xì)節(jié))隊的存儲結(jié)構(gòu)隊尾的標(biāo)識隊頭的標(biāo)識主要操作:初始化空隊、判斷隊空、判斷隊滿、入隊、出隊、取隊頭隊頭入隊出隊a1a2a3……an隊尾15-3隊列的存儲結(jié)構(gòu)順序隊列:用數(shù)組實現(xiàn)隊列fronta[0]隊首隊尾a[1]......a[n]MAXrear15-4移元素?移指針?frontrear入隊、退隊、退隊、入隊、入隊、入隊、(再入隊將溢出)rearfrontrear入隊與退隊移指針:方便,但會造成假溢出,浪費(fèi)空間問題:如何解決假溢出?兩個辦法:①移動元素:簡單,低效;√②將隊列設(shè)想成一個環(huán)狀結(jié)構(gòu)——
循環(huán)隊列。rearfront15-5將順序隊列設(shè)想為首尾相連的環(huán)狀空間,第1個單元聯(lián)結(jié)第m個單元。當(dāng)指針超出隊列空間的最大位置時,令它們?yōu)?,使隊列空間能“循環(huán)”使用。m4321Q.rearQ.frontJ6J5J4指針的移動
Q.rear=(Q.rear+1)%m
Q.front=(Q.front+1)%m
2.循環(huán)隊列序號J6J4J5Q.rearQ.front循環(huán)隊列圖示423m51Q.rearQ.frontJ6J7J8J9J4J5
J6Q.frontQ.rearJ5J4(a)(b)隊空(c)隊滿問題:如何判斷隊列滿和空?
1)在(a)狀態(tài)下,J4、J5、J6出隊,
隊列狀態(tài)如圖(b),這時有:
Q.front==Q.rear;
2)在(a)狀態(tài)下,J7、J8、J9入隊后,
再要入隊,隊列狀態(tài)如圖(c),這時也有: Q.front==Q.rear;
無法判斷隊列是空還是滿!Q.rear
Q.front?423m51423m51423m5115-7兩種解決方法:另設(shè)一個標(biāo)志位s以區(qū)分隊空、隊滿。
s=0:隊列空
s=1:隊列非空引入隊列長度少用一個存儲單元,即當(dāng)隊列達(dá)到圖(d)所示狀態(tài)時,就認(rèn)為隊列已滿,即:
Q.front==(Q.rear+1)%mQ.rear
Q.frontJ6J7J8J4J5(d)空余單元423m5115-8順序存儲的循環(huán)隊列C++描述usingnamespacestd;template<typenameT> //模板申明,T為類型參數(shù)voidinit_Queue(T*q,intm,int*front,int*rear,int*s){q=newT(m); //申請m個存儲空間
*front=m;*rear=m;*s=0; //初始化空隊列return; } 注:q數(shù)組q[0……m-1]15-9循環(huán)隊列入隊操作usingnamespacestd;template<typenameT> voidaddcq(T*q,intm,int*front,int*rear,int*s,Tx
){if((*s==1)&&(*rear==*front)) //判隊列滿{cout<<“Queueoverflow!”<<endl;return;}
*rear=*rear+1;
//隊尾序號指針遞增
if(*rear==m+1)*rear=1; //序號循環(huán)q[*rear-1]=x;*s=1; //入隊,置隊列非空return; } 注:*rear中的序號與數(shù)組中元素的存儲位置的對應(yīng)15-10循環(huán)隊列退隊操作usingnamespacestd;template<typenameT> voiddelcq(T*q,intm,int*front,int*rear,int*s
){Ty;if(*s==0) //判隊列空{(diào)cout<<“Queueunderflow!”<<endl;return;}
*front=*front+1;
//隊尾序號指針遞增
if(*front==m+1)*front=1; //序號循環(huán)*y=q[*front-1]; //退隊if(*front==*rear)*s=0; //置隊列空標(biāo)志return; } 注:*front中的序號與數(shù)組中元素的存儲位置的對應(yīng)15-113.
循環(huán)隊列類-sq_Queue#include<iostream>usingnamespacestd;template<classT> classsq_Queue //順序棧類{private: //數(shù)據(jù)成員intmm; //存儲空間容量intfront; //隊頭指標(biāo)(注意與前例的區(qū)別)
intrear; //隊尾指標(biāo)(注意與前例的區(qū)別)ints; //隊空標(biāo)志T*q;public: //成員函數(shù)sq_Queue(int); //構(gòu)造函數(shù),初始化空隊列voidprt_sq_Queue(); //輸出隊頭及隊尾指針和隊中元素
intflag_sq_Queue();
//檢測循環(huán)隊列狀態(tài)voidins_sq_Queue(T); //入隊
Tdel_sq_Queue(); //退隊}; 請同學(xué)自行分析各成員函數(shù)及其用法(p44-46)15-124.隊列應(yīng)用解決由于多用戶引起的資源競爭問題:如操作系統(tǒng)中的作業(yè)排隊,作業(yè)按請求處理的先后次序排隊,每當(dāng)一個作業(yè)的處理完畢,就再取隊頭作業(yè)進(jìn)行處理;新的作業(yè)要求處理時,先排在隊尾排隊等待。又如網(wǎng)絡(luò)排隊打印服務(wù)。用于紀(jì)錄程序中的步驟順序,以便進(jìn)行非純逆向回朔特征的過程:如圖的廣度優(yōu)先搜索遍歷。離散事件模擬:模擬實際應(yīng)用中的各種排隊現(xiàn)象,如交通流量控制、銀行服務(wù)系統(tǒng)。15-13離散事件模擬事件發(fā)生是隨機(jī)的。事件發(fā)生和持續(xù)的時間是隨機(jī)的。對事件的處理按先來后到的順序進(jìn)行。用程序模擬離散事件:時間模擬:1)確定最小時間間隔。用隨機(jī)數(shù)模擬事件發(fā)生的概率,產(chǎn)生事件。用隨機(jī)數(shù)模擬對事件處理和結(jié)束的概率。2)用隨機(jī)數(shù)模擬事件發(fā)生的時間,持續(xù)時間。(時間點(diǎn),片)用隨機(jī)數(shù)模擬對事件處理和結(jié)束的時間。(時間片,點(diǎn))順序模擬:用隊列模擬有先后順序關(guān)系的離散事件內(nèi)容和處理過程。15-14加油站工作模擬序號123m到車率dt/grearfront加油站總服務(wù)時間:time采樣間隔:dt
(dt<g)Rnd<=dt/g
:到車
01加油時間:d加油機(jī)狀態(tài):flag(0,1)=d-dt,flag(i)<=0:取隊頭車加油服務(wù)對象:aut(0,1)=C
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZZB 3633-2024 原液著色滌綸牽伸絲
- T-ZSM 0074-2024 餐飲業(yè)油煙排放在線監(jiān)測儀
- 二零二五年度旅游行業(yè)客服業(yè)務(wù)員雇傭服務(wù)協(xié)議
- 二零二五年度總經(jīng)理社會責(zé)任與公益慈善聘用協(xié)議
- 2025年度模特時尚活動贊助商權(quán)益合作協(xié)議
- 二零二五年度荒山承包轉(zhuǎn)讓及林業(yè)資源開發(fā)利用合同
- 二零二五年度學(xué)校事業(yè)單位校車司機(jī)勞動合同
- 二零二五年度私人土地買賣合同案:森林資源開發(fā)合作合同樣本
- 二零二五年度學(xué)生校園交通安全管理協(xié)議范本匯編
- 二零二五年度合作社職業(yè)經(jīng)理人鄉(xiāng)村振興聘用協(xié)議
- 棗莊學(xué)院《電力拖動與自動控制系統(tǒng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年江蘇經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫
- 綠化遷移專項施工方案
- 2025屆高三化學(xué)一輪復(fù)習(xí) 原電池 化學(xué)電源(第一課時)課件
- 全院護(hù)理查房(食管裂孔疝)
- 2024-2025學(xué)年統(tǒng)編版語文九年級下冊第7課《溜索》任務(wù)驅(qū)動型教學(xué)設(shè)計
- 2023-2024學(xué)年五年級科學(xué)下冊(冀人版)第4課露和霜(教學(xué)設(shè)計)
- 《管理學(xué)》第一章-管理導(dǎo)論
- 2024年國考公務(wù)員行測真題及參考答案
- 二手車交易定金合同范本5篇
- NB∕T 10391-2020 水工隧洞設(shè)計規(guī)范
評論
0/150
提交評論