




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、3.2 棧的應(yīng)用舉例例1:括號匹配的檢驗假設(shè)一個算法表達式中包含圓括號、方括號和花括號三種類型的括號,編寫一個判別表達式中括號是否正確配對的函數(shù)。 設(shè)計思路:用棧暫存左括號1void ExpIsCorrect(char exp, int n)/判斷有n個字符的字符串exp左右括號是否配對正確 SeqStack myStack; int i;char c; StackInitiate(&myStack); for(i=0;i0 & rear=front 判隊空:count=0加設(shè)標(biāo)志位,出隊時置,入隊時置,則可識別當(dāng)前front=rear屬于何種情況判隊滿:tag=1 & rear=front
2、判隊空:tag=0 & rear=front 少用一個存儲單元判隊滿: front=(rear+1)%MaxQueueSize 判隊空: rear=front13例: 一循環(huán)隊列如下圖所示,若先刪除4個元素,接著再插入4個元素,請問隊頭和隊尾指針分別指向哪個位置? J2 J3J1 J4 J5front=1rear=0解:由圖可知,隊頭和隊尾指針的初態(tài)分別為front=1和rear=0。刪除4個元素后front=5;再插入4個元素后,r=(0+4)%6=4 front=5J6 J5J7J8 J9rear=4rear=0front=514、順序循環(huán)隊列的實現(xiàn)采用對順序循環(huán)隊列的分析,其結(jié)構(gòu)體定義為
3、:typedef structDataType queueMaxQueueSize;int rear;/*隊尾指針*/int front;/*隊頭指針*/int count;/*計數(shù)器*/ SeqCQueue; 15討論:循環(huán)隊列的基本操作如何實現(xiàn)?以建隊、入隊和出隊三種基本操作為例1)初始化一個順序循環(huán)隊列算法要求:生成一空隊列算法操作: 設(shè)置隊列為空隊列,其特征即: front=rear=0,count=016具體算法:void QueueInitiate(SeqCQueue *Q)/*初始化順序循環(huán)隊列Q*/ Q-rear = 0; /*定義初始隊尾指針下標(biāo)值*/ Q-front = 0
4、; /*定義初始隊頭指針下標(biāo)值*/ Q-count = 0; /*定義初始計數(shù)器值*/17算法說明:向循環(huán)隊列的隊尾插入一個元素分 析:(1) 插入前應(yīng)當(dāng)先判斷隊列是否滿? if (Q-count0 & Q-rear=Q-front) return 0;(2)插入動作 Q-queueQ-rear = x; Q-rear = (Q-rear + 1) % MaxQueueSize; Q-count+; return 1;2) 入隊操作隊列尺寸18int QueueAppend(SeqCQueue *Q, DataType x)if(Q-count 0 & Q-rear = Q-front)pri
5、ntf(隊列已滿無法插入! n);return 0;else Q-queueQ-rear = x;Q-rear = (Q-rear + 1) % MaxQueueSize;Q-count+;return 1;入隊操作完整算法193)出隊操作算法說明:刪除隊頭元素,返回其值 e 分 析: (1) 在刪除前應(yīng)當(dāng)判斷隊列是否空? if(Q-count = 0) return 0; (2)刪除動作 m = Q-queueQ-front; Q-front = (Q-front + 1) % MaxQueueSize; Q-count-; front指針在元素出隊后再加20int QueueDelete(SeqCQueue *Q, DataType *d)if(Q-count = 0) printf(隊列已空無數(shù)據(jù)元素出隊列! n); return 0;else *d = Q-queueQ-front; Q-front = (Q-front + 1) % MaxQueueSize; Q-count-; return 1;出隊操作完整算法
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題開題報告:藏羌彝走廊文化遺產(chǎn)保護傳承與和美鄉(xiāng)村建設(shè)路徑研究
- 課題開題報告:TLAC監(jiān)管對系統(tǒng)重要性銀行的市場約束作用研究:效果識別與政策優(yōu)化
- 課題開題報告:AIGC賦能人機協(xié)同應(yīng)急決策的質(zhì)量提升機制研究
- 審計質(zhì)量控制措施的培訓(xùn)與發(fā)展策略
- 房地產(chǎn)行業(yè)勞動力需求及保障措施
- 小學(xué)五年級下學(xué)期班主任班級管理計劃
- 游戲開發(fā)項目質(zhì)量保證措施
- 企業(yè)績效提升的管理措施
- 腰痛中醫(yī)護理講課課件
- 語文教研組長年度評估與反饋計劃
- 美術(shù)概論-課件
- 牛津深圳版初中英語中考英語詞匯匯總(七至九年級)
- 【高中語文】《李憑箜篌引》(同步課件)+高二語文+(統(tǒng)編版選擇性必修中冊)
- 人衛(wèi)版急診與災(zāi)難醫(yī)學(xué)之呼吸困難教學(xué)課件
- 骨質(zhì)疏松的中醫(yī)治療
- 中醫(yī)科運用PDCA循環(huán)縮短出院患者離院時間品管圈QCC持續(xù)質(zhì)量改進成果匯報
- 老年人的溝通交流護理課件
- SEER數(shù)據(jù)庫的申請及數(shù)據(jù)提取方法與流程
- 2022礦產(chǎn)地質(zhì)勘查規(guī)范鹽類第2部分:現(xiàn)代鹽湖鹽類
- 自然環(huán)境及特征(考向3:自然環(huán)境的地域差異(雪線、林線)) 【知識精講精研】 高考地理二輪核心考點突破課堂
- GB/T 43200-2023機器人一體化關(guān)節(jié)性能及試驗方法
評論
0/150
提交評論