版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、3.2 棧的應(yīng)用舉例例1:括號(hào)匹配的檢驗(yàn)假設(shè)一個(gè)算法表達(dá)式中包含圓括號(hào)、方括號(hào)和花括號(hào)三種類型的括號(hào),編寫一個(gè)判別表達(dá)式中括號(hào)是否正確配對(duì)的函數(shù)。 設(shè)計(jì)思路:用棧暫存左括號(hào)1void ExpIsCorrect(char exp, int n)/判斷有n個(gè)字符的字符串exp左右括號(hào)是否配對(duì)正確 SeqStack myStack; int i;char c; StackInitiate(&myStack); for(i=0;i0 & rear=front 判隊(duì)空:count=0加設(shè)標(biāo)志位,出隊(duì)時(shí)置,入隊(duì)時(shí)置,則可識(shí)別當(dāng)前front=rear屬于何種情況判隊(duì)滿:tag=1 & rear=front
2、判隊(duì)空:tag=0 & rear=front 少用一個(gè)存儲(chǔ)單元判隊(duì)滿: front=(rear+1)%MaxQueueSize 判隊(duì)空: rear=front13例: 一循環(huán)隊(duì)列如下圖所示,若先刪除4個(gè)元素,接著再插入4個(gè)元素,請(qǐng)問隊(duì)頭和隊(duì)尾指針分別指向哪個(gè)位置? J2 J3J1 J4 J5front=1rear=0解:由圖可知,隊(duì)頭和隊(duì)尾指針的初態(tài)分別為front=1和rear=0。刪除4個(gè)元素后front=5;再插入4個(gè)元素后,r=(0+4)%6=4 front=5J6 J5J7J8 J9rear=4rear=0front=514、順序循環(huán)隊(duì)列的實(shí)現(xiàn)采用對(duì)順序循環(huán)隊(duì)列的分析,其結(jié)構(gòu)體定義為
3、:typedef structDataType queueMaxQueueSize;int rear;/*隊(duì)尾指針*/int front;/*隊(duì)頭指針*/int count;/*計(jì)數(shù)器*/ SeqCQueue; 15討論:循環(huán)隊(duì)列的基本操作如何實(shí)現(xiàn)?以建隊(duì)、入隊(duì)和出隊(duì)三種基本操作為例1)初始化一個(gè)順序循環(huán)隊(duì)列算法要求:生成一空隊(duì)列算法操作: 設(shè)置隊(duì)列為空隊(duì)列,其特征即: front=rear=0,count=016具體算法:void QueueInitiate(SeqCQueue *Q)/*初始化順序循環(huán)隊(duì)列Q*/ Q-rear = 0; /*定義初始隊(duì)尾指針下標(biāo)值*/ Q-front = 0
4、; /*定義初始隊(duì)頭指針下標(biāo)值*/ Q-count = 0; /*定義初始計(jì)數(shù)器值*/17算法說明:向循環(huán)隊(duì)列的隊(duì)尾插入一個(gè)元素分 析:(1) 插入前應(yīng)當(dāng)先判斷隊(duì)列是否滿? if (Q-count0 & Q-rear=Q-front) return 0;(2)插入動(dòng)作 Q-queueQ-rear = x; Q-rear = (Q-rear + 1) % MaxQueueSize; Q-count+; return 1;2) 入隊(duì)操作隊(duì)列尺寸18int QueueAppend(SeqCQueue *Q, DataType x)if(Q-count 0 & Q-rear = Q-front)pri
5、ntf(隊(duì)列已滿無法插入! n);return 0;else Q-queueQ-rear = x;Q-rear = (Q-rear + 1) % MaxQueueSize;Q-count+;return 1;入隊(duì)操作完整算法193)出隊(duì)操作算法說明:刪除隊(duì)頭元素,返回其值 e 分 析: (1) 在刪除前應(yīng)當(dāng)判斷隊(duì)列是否空? if(Q-count = 0) return 0; (2)刪除動(dòng)作 m = Q-queueQ-front; Q-front = (Q-front + 1) % MaxQueueSize; Q-count-; front指針在元素出隊(duì)后再加20int QueueDelete(SeqCQueue *Q, DataType *d)if(Q-count = 0) printf(隊(duì)列已空無數(shù)據(jù)元素出隊(duì)列! n); return 0;else *d = Q-queueQ-front; Q-front = (Q-front + 1) % MaxQueueSize; Q-count-; return 1;出隊(duì)操作完整算法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)獨(dú)家代理協(xié)議范本2024年行業(yè)專用版B版
- 2025年校園改造工程項(xiàng)目培訓(xùn)與咨詢合同2篇
- 三年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)及答案
- 三年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)匯編及答案集錦
- 2025年外研版2024選修2地理下冊(cè)月考試卷含答案
- 教育領(lǐng)域中智能制造技術(shù)的培訓(xùn)與推廣
- 2025年冀少新版選擇性必修3地理上冊(cè)階段測(cè)試試卷含答案
- 2025年華師大版九年級(jí)地理上冊(cè)階段測(cè)試試卷含答案
- 2025至2031年中國(guó)L-抗壞血酸(VC)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)鎘鎳池直流柜數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 副總經(jīng)理招聘面試題與參考回答(某大型國(guó)企)2024年
- PDCA循環(huán)提高護(hù)士培訓(xùn)率
- 2024年工程咨詢服務(wù)承諾書
- 青桔單車保險(xiǎn)合同條例
- 車輛使用不過戶免責(zé)協(xié)議書范文范本
- 《獅子王》電影賞析
- 2023-2024學(xué)年天津市部分區(qū)九年級(jí)(上)期末物理試卷
- DB13-T 5673-2023 公路自愈合瀝青混合料薄層超薄層罩面施工技術(shù)規(guī)范
- 河北省保定市定州市2025屆高二數(shù)學(xué)第一學(xué)期期末監(jiān)測(cè)試題含解析
- 哈爾濱研學(xué)旅行課程設(shè)計(jì)
- 2024 smart汽車品牌用戶社區(qū)運(yùn)營(yíng)全案
評(píng)論
0/150
提交評(píng)論