版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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),編寫(xiě)一個(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)問(wèn)隊(duì)頭和隊(duì)尾指針?lè)謩e指向哪個(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算法說(shuō)明:向循環(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ì)列已滿無(wú)法插入! n);return 0;else Q-queueQ-rear = x;Q-rear = (Q-rear + 1) % MaxQueueSize;Q-count+;return 1;入隊(duì)操作完整算法193)出隊(duì)操作算法說(shuō)明:刪除隊(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ì)列已空無(wú)數(shù)據(jù)元素出隊(duì)列! n); return 0;else *d = Q-queueQ-front; Q-front = (Q-front + 1) % MaxQueueSize; Q-count-; return 1;出隊(duì)操作完整算法
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版新能源充電樁投資加盟合作協(xié)議范本3篇
- 2025年度住宅小區(qū)景觀窗簾藝術(shù)化設(shè)計(jì)與安裝合同范本4篇
- 基坑坍塌事故案例分析
- 二零二五年度車輛檢測(cè)報(bào)告服務(wù)合同2篇
- 二零二五年度情侶心靈契合不分手情感咨詢合同2篇
- 二零二五版綠色生態(tài)農(nóng)業(yè)種植項(xiàng)目合作協(xié)議4篇
- 新課標(biāo)下的實(shí)驗(yàn)教學(xué)新趨勢(shì)-以小學(xué)科學(xué)為例
- 學(xué)生工業(yè)實(shí)習(xí)中的實(shí)踐能力鍛煉
- 2025年度房屋裝修工程驗(yàn)收與保修個(gè)人房屋裝修合同模板
- 白山2025年吉林白山市縣事業(yè)單位招聘應(yīng)征入伍高校畢業(yè)生14人筆試歷年參考題庫(kù)附帶答案詳解
- 中國(guó)2型糖尿病運(yùn)動(dòng)治療指南 (2024版)
- 貨物運(yùn)輸安全培訓(xùn)課件
- 統(tǒng)編版高中政治選擇性必修2《法律與生活》知識(shí)點(diǎn)復(fù)習(xí)提綱詳細(xì)版
- 前端年終述職報(bào)告
- 2024小說(shuō)推文行業(yè)白皮書(shū)
- 特殊感染手術(shù)管理考試試題及答案
- 旅館治安管理制度及突發(fā)事件應(yīng)急方案三篇
- 市人民醫(yī)院關(guān)于開(kāi)展“改善就醫(yī)感受提升患者體驗(yàn)主題活動(dòng)”2023-2025年實(shí)施方案及資料匯編
- 政績(jī)觀存在的問(wèn)題及整改措施范文(7篇)
- GB 1886.232-2016食品安全國(guó)家標(biāo)準(zhǔn)食品添加劑羧甲基纖維素鈉
- 《港口管理》課件綜述
評(píng)論
0/150
提交評(píng)論