版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
選擇性必修1《數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)》3.3用隊列組織先進(jìn)先出數(shù)據(jù)|一、隊列queue|隊列的基本概念|隊列是一種特殊的線性表,它只允許在表的一端進(jìn)行插入,在表的另一端進(jìn)行刪除隊尾:能進(jìn)行插入的一端隊頭:能進(jìn)行刪除的一端入隊:把一個數(shù)據(jù)元素插入隊列中的操作叫作入隊出隊:從隊列中刪除一個數(shù)據(jù)元素的操作叫作出隊空隊列:隊列中沒有元素時,稱為空隊列舉例:①售票窗口②排隊買飯?zhí)匦裕合冗M(jìn)先出(FirstInFirstOut)簡稱FIFO;超市為顧客提供的售后服務(wù)請求建立數(shù)據(jù)模型|為服務(wù)請求隊列建立數(shù)據(jù)模型隊列{
隊列元素(一定數(shù)量的顧客編號);
隊頭(即將出隊的顧客的位置);
隊尾(即將入隊的顧客的位置);}隊列的基本操作;設(shè)計自助服務(wù)系統(tǒng)的操作|二、隊列的基本操作Basicoperationofqueue|隊列的基本操作|對于隊列,通常有以下幾種基本操作:(1)初始化隊列:構(gòu)造一個空隊列,初始化隊頭、隊尾標(biāo)志。(2)元素入隊:若隊列非滿,插人一個元素到隊列的隊尾標(biāo)志指向的位置,該元素成為新的隊尾元素,隊尾標(biāo)志向后移動位。q:frontrear空隊列q:frontreara1入隊q:frontreara2,a3依次入隊a1a1a2a3初始化隊列:front=rear=0入隊操作:rear=rear+1隊列的基本操作|(3)元素出隊:刪除隊頭標(biāo)志指向的隊頭元素,隊頭標(biāo)志向后移動一位,若此時隊列非空,則隊頭標(biāo)志指向的元素成為新的隊頭元素。(4)求隊列長度:返回隊列當(dāng)前所含元素個數(shù)。(5)隊空判斷:若隊列為空,則返回“真”,否則返回“假”(6)隊滿判斷:若隊列為滿,則返回“真”,否則返回“假”假設(shè)已定義隊列q、隊頭front、隊尾rear,則初始化隊列為空、入隊和出隊幾種情況如圖q:frontreara1出隊a2a3q:frontreara2出隊a3出隊操作:front=front+1求隊列長度:rear-front隊空判斷:front==rear隊滿判斷:rear==maxsize三、隊列的實現(xiàn)-順序隊列Queueimplementation-sequentialqueue|順序隊列順序隊列:當(dāng)入隊或出隊時,隊尾標(biāo)志rear或隊頭標(biāo)志front只能往后移動一位,且其隊列的最大長度為maxsize(數(shù)組的容量),我們把這種隊列成為順序隊列。|數(shù)
組:frontrear順序隊列a3數(shù)組下標(biāo):012345a4a1a20≤front≤maxsize0≤rear≤maxsizemaxsize=6順序隊列初始化隊列:front=rear=0入隊操作:rear=rear+1出隊操作:front=front+1隊空判斷:front==rear隊滿判斷:rear==maxsize求隊列長度:rear-front|順序隊列的操作代碼|
隊頭標(biāo)志和隊尾標(biāo)志均為0,這時隊列為空,沒有元素初始化隊列voidInit_Queue(Queue&q){q.front=q.rear=0;}順序隊列的操作代碼|
當(dāng)front=rear時,隊列為空,返回true,否則返回false。判斷隊列是否為空boolIsEmpty_Queue(Queue&q){if(q.front==q.rear)returntrue;elsereturnfalse;}順序隊列的操作代碼|
當(dāng)rear=maxsize時,隊列為滿,返回true,否則返回false。判斷隊列是否為滿boolIsFull_Queue(Queue&q){if(q.rear==maxsize)returntrue;elsereturnfalse;}順序隊列的操作代碼|
如果隊列非滿,則將元素x放入隊尾標(biāo)志rear所指位置,然后rear指向下一個位置。入隊操作boolIn_Queue(Queue&q,stringx){if(!IsFull_Queue(q)){ q.items[q.rear]=x; q.rear=q.rear+1;}}順序隊列的操作代碼|
如果隊列為空,返回空元素(NULL),否則返回隊頭標(biāo)志front所指的元素,然后front指向下一個位置。出隊操作stringOut_Queue(Queue&q){if(IsEmpty_Queue(q)){ rerurnNull;}else{ stringretvalue; retvalue=q.items[q.front]; q.front=q.front+1; returnretvalue;}}順序隊列的操作代碼|
取當(dāng)前隊列長度intSize_Queue(Queue&q){returnq.rear-q.front;}四、隊列的實現(xiàn)-循環(huán)隊列Implementationofqueue-circularqueue|循環(huán)隊列|當(dāng)對順序隊列不斷執(zhí)行入隊操作時,隊列就有可能出現(xiàn)溢出現(xiàn)象。如已定義順序隊列q,隊頭front,隊尾rear,數(shù)組容量為6,當(dāng)有元素入隊時,有下面兩種情況:1.真溢出2.假溢出循環(huán)隊列|1.真溢出當(dāng)隊列中的實際元素個數(shù)達(dá)到隊列最大長度maxsize時,隊列滿此時再入隊將產(chǎn)生空間溢出現(xiàn)象,如下圖所示真溢出是一種出錯狀態(tài),應(yīng)設(shè)法避免數(shù)
組:frontreara7準(zhǔn)備入隊,隊列滿,隊尾標(biāo)志為maxsize,無法入隊。a3數(shù)組下標(biāo):012345a4a1a2a5a6a7front等于0rear等于隊列最大長度6循環(huán)隊列|2.假溢出由于同時有入隊和出隊兩種操作,隊頭front、隊尾rear的值只增加不減少,致使已出隊元素的空間永遠(yuǎn)無法重新利用。當(dāng)隊列中的實際元素個數(shù)小于隊列最大長度(即數(shù)組容量)maxsize時,也可能由于隊尾標(biāo)志已達(dá)到maxsize而不能再做入隊操作,這時就出現(xiàn)了假溢出,如圖所示。數(shù)
組:frontreara7準(zhǔn)備入隊,隊尾標(biāo)志為maxsize,無法入隊。a1,a2已出隊,隊列實際未滿。a3數(shù)組下標(biāo):012345a4a5a6a7front等于0rear等于隊列最大長度6循環(huán)隊列|將數(shù)組存儲區(qū)想象為一個首尾相接的圓環(huán),并稱存儲在其中的隊列為循環(huán)隊列。循環(huán)隊列|基本操作:初始化隊列:front=rear=0入隊操作:rear=(rear+1)%maxsize出隊操作:front=(front+1)%maxsize隊空
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 分部驗收合同(2篇)
- 河南省鄭州市鄭州外國語達(dá)標(biāo)名校2025屆中考生物模擬預(yù)測題含解析
- 2022-2023學(xué)年山東省煙臺市高一上學(xué)期期末考試地理試題(解析版)
- 2025茶葉的購銷合同范文
- 2024年度天津市公共營養(yǎng)師之三級營養(yǎng)師能力檢測試卷A卷附答案
- 2025住宅商業(yè)房屋買賣合同
- 2021-2026年中國民辦基礎(chǔ)教育行業(yè)投資分析及發(fā)展戰(zhàn)略咨詢報告
- 廢舊物資回收物流中心項目可行性研究報告
- 防火膨脹密封條行業(yè)深度研究報告
- 2025公司債務(wù)擔(dān)保保證合同
- 晉升管理制度(30篇)
- 2024信息技術(shù)應(yīng)用創(chuàng)新信息系統(tǒng)適配改造成本度量
- 廣東省廣州市2025屆高三上學(xué)期12月調(diào)研測試(零模)英語 含解析
- 陜西測繪地理信息局所屬事業(yè)單位2025年上半年招聘87人和重點基礎(chǔ)提升(共500題)附帶答案詳解
- 保險學(xué)期末試題及答案
- 高一數(shù)學(xué)上學(xué)期期末模擬試卷01-【中職專用】2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期(高教版2023基礎(chǔ)模塊)(解析版)
- 嚴(yán)重精神障礙患者隨訪服務(wù)記錄表
- 2024-2025學(xué)年人教版八年級上冊地理期末測試卷(一)(含答案)
- 統(tǒng)編版(2024新版)七年級上冊道德與法治第四單元綜合測試卷(含答案)
- 滬教版英語小學(xué)六年級上學(xué)期期末試題與參考答案(2024-2025學(xué)年)
- 北京市海淀區(qū)2023-2024學(xué)年四年級上學(xué)期語文期末試卷
評論
0/150
提交評論