版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.第三章習(xí)題1.按圖3.1所示鐵道兩側(cè)鐵道均為單向行駛道進(jìn)行車廂調(diào)度,回答: 如進(jìn)站的車廂序列為123,則可能得到的出站車廂序列是什么?如進(jìn)站的車廂序列為123456,能否得到435612和135426的出站序列,并說(shuō)明原因。即寫(xiě)出以S表示進(jìn)棧、以X表示出棧的棧操作序列。2.設(shè)隊(duì)列中有A、B、C、D、E這5個(gè)元素,其中隊(duì)首元素為A。如果對(duì)這個(gè)隊(duì)列重復(fù)執(zhí)行下列4步操作:1輸出隊(duì)首元素;2把隊(duì)首元素值插入到隊(duì)尾;3刪除隊(duì)首元素;4再次刪除隊(duì)首元素。直到隊(duì)列成為空隊(duì)列為止,得到輸出序列:1A、C、E、C、C 2 A、C、E3 A、C、E、C、C、C 4 A、C、E、C3.給出棧的兩種存儲(chǔ)結(jié)構(gòu)形式名稱
2、,在這兩種棧的存儲(chǔ)結(jié)構(gòu)中如何判別??张c棧滿?4.按照四則運(yùn)算加、減、乘、除和冪運(yùn)算優(yōu)先關(guān)系的慣例,畫(huà)出對(duì)下列算術(shù)表達(dá)式求值時(shí)操作數(shù)棧和運(yùn)算符棧的變化過(guò)程: AB5.試寫(xiě)一個(gè)算法,判斷依次讀入的一個(gè)以為結(jié)束符的字母序列,是否為形如序列1&序列2模式的字符序列。其中序列1和序列2中都不含字符&,且序列2是序列1的逆序列。例如,a+b&b+a是屬該模式的字符序列,而+&則不是。6.假設(shè)表達(dá)式由單字母變量和雙目四則運(yùn)算算符構(gòu)成。試寫(xiě)一個(gè)算法,將一個(gè)通常書(shū)寫(xiě)形式且書(shū)寫(xiě)正確的表達(dá)式轉(zhuǎn)換為逆波蘭式。7.假設(shè)以帶頭結(jié)點(diǎn)的循環(huán)鏈表表示隊(duì)列,并且只設(shè)一個(gè)指針指向隊(duì)尾元素結(jié)點(diǎn)注意不設(shè)頭指針,試編寫(xiě)相應(yīng)的隊(duì)列初始化、
3、入隊(duì)列和出隊(duì)列的算法。8.要求循環(huán)隊(duì)列不損失一個(gè)空間全部都能得到利用, 設(shè)置一個(gè)標(biāo)志域tag , 以tag為0或1來(lái)區(qū)分頭尾指針相同時(shí)的隊(duì)列狀態(tài)的空與滿,請(qǐng)編寫(xiě)與此結(jié)構(gòu)相應(yīng)的入隊(duì)與出隊(duì)算法。9.簡(jiǎn)述以下算法的功能其中棧和隊(duì)列的元素類型均為int:1void proc_1 int i, n, A255; n=0; while!EmptyStack n+; Pop; fori=1; i Push;2void proc_2 Stack T; int d;InitStack; while!EmptyStack Pop; if Push; while!EmptyStack Pop; Push; 3voi
4、d proc_3 Stack S; int d;InitStack; while!EmptyQueue DeleteQueue;Push; while!EmptyStack Pop; EnterQueue 實(shí)習(xí)題1回文判斷。稱正讀與反讀都相同的字符序列為回文序列。試寫(xiě)一個(gè)算法,判斷依次讀入的一個(gè)以為結(jié)束符的字母序列,是否為形如序列1&序列2模式的字符序列。其中序列1和序列2中都不含字符&,且序列2是序列1的逆序列。例如,a+b&b+a是屬該模式的字符序列,而+&則不是。2停車場(chǎng)管理。設(shè)停車場(chǎng)是一個(gè)可停放n輛車的狹長(zhǎng)通道,且只有一個(gè)大門可供汽車進(jìn)出。在停車場(chǎng)內(nèi),汽車按到達(dá)的先后次序,由北向南依次
5、排列假設(shè)大門在最南端。若車場(chǎng)內(nèi)已停滿n輛 車,則后來(lái)的汽車需在門外的便道上等候,當(dāng)有車開(kāi)走時(shí),便道上的第一輛車即可開(kāi)入。當(dāng)停車場(chǎng)內(nèi)某輛車要離開(kāi)時(shí),在它之后進(jìn)入的車輛必須先退出車場(chǎng)為它讓 路,待該輛車開(kāi)出大門后,其它車輛再按原次序返回車場(chǎng)。每輛車離開(kāi)停車場(chǎng)時(shí),應(yīng)按其停留時(shí)間的長(zhǎng)短交費(fèi)在便道上停留的時(shí)間不收費(fèi)。試編寫(xiě)程序,模擬上述管理過(guò)程。要求以順序棧模擬停車場(chǎng),以鏈隊(duì)列模擬便道。從終端讀入汽車到達(dá)或離去的數(shù)據(jù),每組數(shù)據(jù)包括三項(xiàng):是到達(dá)還是離去;汽車牌照號(hào)碼;到達(dá)或離去的時(shí)刻。與每組輸入信息相應(yīng)的輸出信息為:如果是到達(dá)的車輛,則輸出其在停車場(chǎng)中或便道上的位置;如果是離去的車輛,則輸出其在停車場(chǎng)中停
6、留的時(shí)間和應(yīng)交的費(fèi)用。提示:需另設(shè)一個(gè)棧,臨時(shí)停放為讓路而從車場(chǎng)退出的車。3商品貨架管理。商品貨架可以看成一個(gè)棧,棧頂商品的生產(chǎn)日期最早,棧底商品的生產(chǎn)日期最近。上貨時(shí),需要倒貨架,以保證生產(chǎn)日期較近的商品在較下的位置。用隊(duì)列和棧作為周轉(zhuǎn),實(shí)現(xiàn)上述管理過(guò)程。第三章答案3.1按3.1所示鐵道兩側(cè)鐵道均為單向行駛道進(jìn)行車廂調(diào)度,回答:1如進(jìn)站的車廂序列為123,則可能得到的出站車廂序列是什么?2如進(jìn)站的車廂序列為123456,能否得到435612和135426的出站序列,并說(shuō)明原因即寫(xiě)出以S表示進(jìn)棧、X表示出棧的棧序列操作。解答1可能得到的出站車廂序列是:123、132、213、231、321。不
7、能得到435612的出站序列。因?yàn)橛蠸SSSXXSXSS,此時(shí)按照后進(jìn)先出的原則,出棧的順序必須為XX。能得到135426的出站序列。因?yàn)橛蠸XSSXSSXXXX。3.3給出棧的兩種存儲(chǔ)結(jié)構(gòu)形式名稱,在這兩種棧的存儲(chǔ)結(jié)構(gòu)中如何判別棧空與棧滿?解答1順序棧top用來(lái)存放棧頂元素的下標(biāo)判斷棧S空:如果S-top=-1表示棧空。判斷棧S滿:如果S-top=Stack_Size-1表示棧滿。 鏈棧top為棧頂指針,指向當(dāng)前棧頂元素前面的頭結(jié)點(diǎn)判斷棧空:如果top-next=NULL表示???。判斷棧滿:當(dāng)系統(tǒng)沒(méi)有可用空間時(shí),申請(qǐng)不到空間存放要進(jìn)棧的元素,此時(shí)棧滿。34照四則運(yùn)算加、減、乘、除和冪運(yùn)算的優(yōu)
8、先慣例,畫(huà)出對(duì)下列表達(dá)式求值時(shí)操作數(shù)棧和運(yùn)算符棧的變化過(guò)程:A-B*C/D+EF解答35寫(xiě)一個(gè)算法,判斷依次讀入的一個(gè)以為結(jié)束符的字母序列,是否形如序列1&序列2的字符序列。序列1和序列2中都不含&,且序列2是序列1 的逆序列。例如,a+b&b+a是屬于該模式的字符序列,而1+3&3-1則不是。解答算法如下: int IsHuiWen Stack *S; Char ch,temp; InitStack; Printf; Ch=getchar;While /*序列1入棧*/ Push; ch=getchar;do /*判斷序列2是否是序列1的逆序列*/ ch=getchar; Pop; if /
9、*序列2不是序列1的逆序列*/ return; printf; whilech!= & !IsEmptyifch = = & IsEmpty return; printf; /*序列2是序列1的逆序列*/else return; printf; /*IsHuiWen*/3.8 要求循環(huán)隊(duì)列不損失一個(gè)空間全部都能得到利用,設(shè)置一個(gè)標(biāo)志tag,以tag為0或1來(lái)區(qū)分頭尾指針相同時(shí)的隊(duì)列狀態(tài)的空與滿,請(qǐng)編寫(xiě)與此相應(yīng)的入隊(duì)與出隊(duì)算法。解答入隊(duì)算法:int EnterQueue /*將元素x入隊(duì)*/ iffront=Q-front & tag=1 /*隊(duì)滿*/ return; iffront=Q-fro
10、nt & tag=0 /*x入隊(duì)前隊(duì)空,x入隊(duì)后重新設(shè)置標(biāo)志*/ tag=1;Q-elememtQ-rear=x;Q-rear=rear+1%MAXSIZE; /*設(shè)置隊(duì)尾指針*/Return; 出隊(duì)算法: int DeleteQueue /*刪除隊(duì)頭元素,用x返回其值*/iffront=Q-rear & tag=0 /*隊(duì)空*/ return;*x=Q-elementQ-front;Q-front=front+1%MAXSIZE; /*重新設(shè)置隊(duì)頭指針*/iffront=Q-rear tag=0; /*隊(duì)頭元素出隊(duì)后隊(duì)列為空,重新設(shè)置標(biāo)志域*/Return; 編寫(xiě)求解Hanoi問(wèn)題的算法,并
11、給出三個(gè)盤子搬動(dòng)時(shí)的遞歸調(diào)用過(guò)程。解答算法: void hanoi /*將塔座X上按直徑由小到大且至上而下編號(hào)為1到n的n個(gè)圓盤按規(guī)則搬到塔座Z上,Y可用做輔助塔座*/ if move; else Hanoi; move;Hanoi; Hanoi的遞歸調(diào)用過(guò)程:Hanoi: Hanoi moveC 1號(hào)搬到C MoveB 2號(hào)搬到B Hanoi moveB 1號(hào)搬到B MoveC 3號(hào)搬到CHanoi Hanoi moveA 1號(hào)搬到A MoveC 2號(hào)搬到C Hanoi moveC 1號(hào)搬到C提示:第3章限定性線性表 棧和隊(duì)列習(xí)題1.按圖3.1所示鐵道兩側(cè)鐵道均為單向行駛道進(jìn)行車廂調(diào)度,回答
12、:如進(jìn)站的車廂序列為123,則可能得到的出站車廂序列是什么?123、213、132、231、321312如進(jìn)站的車廂序列為123456,能否得到435612和135426的出站序列,并說(shuō)明原因。即寫(xiě)出以S表示進(jìn)棧、以X表示出棧的棧操作序列。SXSS XSSX XXSX 或 S1X1S2S3X3S4S5X5X4X2S6X62.設(shè)隊(duì)列中有A、B、C、D、E這5個(gè)元素,其中隊(duì)首元素為A。如果對(duì)這個(gè)隊(duì)列重復(fù)執(zhí)行下列4步操作:1輸出隊(duì)首元素;2把隊(duì)首元素值插入到隊(duì)尾;3刪除隊(duì)首元素;4再次刪除隊(duì)首元素。直到隊(duì)列成為空隊(duì)列為止,則是否可能得到輸出序列:1A、C、E、C、C 2 A、C、E3 A、C、E、C
13、、C、C 4 A、C、E、C提示: A、B、C、D、E 輸出隊(duì)首元素A A、B、C、D、E、A 把隊(duì)首元素A插入到隊(duì)尾 B、C、D、E、A 刪除隊(duì)首元素A C、D、E、A 再次刪除隊(duì)首元素B C、D、E、A 輸出隊(duì)首元素C C、D、E、A、C 把隊(duì)首元素C插入到隊(duì)尾 D、E、A、C 刪除隊(duì)首元素C E、A、C 再次刪除隊(duì)首元素D3.給出棧的兩種存儲(chǔ)結(jié)構(gòu)形式名稱,在這兩種棧的存儲(chǔ)結(jié)構(gòu)中如何判別棧空與棧滿?4.按照四則運(yùn)算加、減、乘、除和冪運(yùn)算優(yōu)先關(guān)系的慣例,畫(huà)出對(duì)下列算術(shù)表達(dá)式求值時(shí)操作數(shù)棧和運(yùn)算符棧的變化過(guò)程: AB5.試寫(xiě)一個(gè)算法,判斷依次讀入的一個(gè)以為結(jié)束符的字母序列,是否為形如序列1&序
14、列2模式的字符序列。其中序列1和序列2中都不含字符&,且序列2是序列1的逆序列。例如,a+b&b+a是屬該模式的字符序列,而+&則不是。提示:1邊讀邊入棧,直到&2邊讀邊出棧邊比較,直到6.假設(shè)表達(dá)式由單字母變量和雙目四則運(yùn)算算符構(gòu)成。試寫(xiě)一個(gè)算法,將一個(gè)通常書(shū)寫(xiě)形式中綴且書(shū)寫(xiě)正確的表達(dá)式轉(zhuǎn)換為逆波蘭式后綴。提示:例:中綴表達(dá)式:a+b后綴表達(dá)式: ab+中綴表達(dá)式:a+bc后綴表達(dá)式: abc+中綴表達(dá)式:a+bc-d后綴表達(dá)式: abc+d-中綴表達(dá)式:a+bc-d/e后綴表達(dá)式: abc+de/-中綴表達(dá)式:a+b-e/f后綴表達(dá)式: abcd-+ef/-后綴表達(dá)式的計(jì)算過(guò)程:簡(jiǎn)便順序掃
15、描表達(dá)式,1如果是操作數(shù),直接入棧;2如果是操作符op,則連續(xù)退棧兩次,得操作數(shù)X, Y,計(jì)算X op Y,并將結(jié)果入棧。如何將中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式?順序掃描中綴表達(dá)式,1如果是操作數(shù),直接輸出;2如果是操作符op2,則與棧頂操作符op1比較:如果op2 op1,則op2入棧;如果op2 = op1,則脫括號(hào);如果op2 op1,則輸出op1;7.假設(shè)以帶頭結(jié)點(diǎn)的循環(huán)鏈表表示隊(duì)列,并且只設(shè)一個(gè)指針指向隊(duì)尾元素結(jié)點(diǎn)注意不設(shè)頭指針,試編寫(xiě)相應(yīng)的隊(duì)列初始化、入隊(duì)列和出隊(duì)列的算法。提示:參P.56 P.70 先畫(huà)圖.typedef LinkListCLQueue;int InitQueueint
16、 EnterQueueint DeleteQueue8.要求循環(huán)隊(duì)列不損失一個(gè)空間全部都能得到利用, 設(shè)置一個(gè)標(biāo)志域tag , 以tag為0或1來(lái)區(qū)分頭尾指針相同時(shí)的隊(duì)列狀態(tài)的空與滿,請(qǐng)編寫(xiě)與此結(jié)構(gòu)相應(yīng)的入隊(duì)與出隊(duì)算法。提示:初始狀態(tài):front=0, rear=0, tag=0隊(duì)空條件:front=rear, tag=0隊(duì)滿條件:front=rear, tag=1其它狀態(tài):front !=rear, tag=0或1、2入隊(duì)操作:入隊(duì)if tag=1;或直接tag=1出隊(duì)操作:出隊(duì)tag=0;問(wèn)題:如何明確區(qū)分隊(duì)空、隊(duì)滿、非空非滿三種情況?9.簡(jiǎn)述以下算法的功能其中棧和隊(duì)列的元素類型均為int
17、:1void proc_1 int i, n, A255; n=0; while!EmptyStack n+; Pop; fori=1; i Push;將棧S逆序。2void proc_2 Stack T; int d;InitStack; while!EmptyStack Pop; if Push; while!EmptyStack Pop; Push; 刪除棧S中所有等于e的元素。3void proc_3 Stack S; int d;InitStack; while!EmptyQueue DeleteQueue;Push; while!EmptyStack Pop; EnterQueue
18、 將隊(duì)列Q逆序。實(shí)習(xí)題1回文判斷。稱正讀與反讀都相同的字符序列為回文序列。試寫(xiě)一個(gè)算法,判斷依次讀入的一個(gè)以為結(jié)束符的字母序列,是否為形如序列1&序列2模式的字符序列。其中序列1和序列2中都不含字符&,且序列2是序列1的逆序列。例如,a+b&b+a是屬該模式的字符序列,而+&則不是。2停車場(chǎng)管理。設(shè)停車場(chǎng)是一個(gè)可停放n輛車的狹長(zhǎng)通道,且只有一個(gè)大門可供汽車進(jìn)出。在停車場(chǎng)內(nèi),汽車按到達(dá)的先后次序,由北向南依次排列假設(shè)大門在最南端。若車場(chǎng)內(nèi)已停滿n輛車,則后來(lái)的汽車需在門外的便道上等候,當(dāng)有車開(kāi)走時(shí),便道上的第一輛車即可開(kāi)入。當(dāng)停車場(chǎng)內(nèi)某輛車要離開(kāi)時(shí),在它之后進(jìn)入的車輛必須先退出車場(chǎng)為它讓路,待該輛車開(kāi)出大門后,其它車輛再按原次序返回車場(chǎng)。每輛車離開(kāi)停車場(chǎng)時(shí),應(yīng)按其停留時(shí)間的長(zhǎng)短交費(fèi)在便道上停
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鉑合金漏板(坩堝)制造工風(fēng)險(xiǎn)評(píng)估與管理測(cè)試考核試卷含答案
- 啤酒糖化工操作測(cè)試考核試卷含答案
- 2025年谷胱甘肽及酵母提取物項(xiàng)目發(fā)展計(jì)劃
- (一模)株洲市2026屆高三年級(jí)教學(xué)質(zhì)量統(tǒng)一檢測(cè)化學(xué)試卷(含答案)
- 2025年軋鋼導(dǎo)衛(wèi)裝置項(xiàng)目合作計(jì)劃書(shū)
- 2023年礦業(yè)開(kāi)采模塊行業(yè)商業(yè)計(jì)劃報(bào)
- 2026年智能土壤 pH 值傳感器項(xiàng)目評(píng)估報(bào)告
- 2025年江蘇省淮安市中考英語(yǔ)真題卷含答案解析
- 環(huán)境污染控制技術(shù)
- 2025年人工智能技術(shù)知識(shí)普及試題及答案解析
- 特種工安全崗前培訓(xùn)課件
- 新疆維吾爾自治區(qū)普通高中2026屆高二上數(shù)學(xué)期末監(jiān)測(cè)試題含解析
- 2026屆福建省三明市第一中學(xué)高三上學(xué)期12月月考?xì)v史試題(含答案)
- 2026年遼寧金融職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)附答案解析
- (正式版)DB51∕T 3342-2025 《爐灶用合成液體燃料經(jīng)營(yíng)管理規(guī)范》
- 2026北京海淀初三上學(xué)期期末語(yǔ)文試卷和答案
- 2024-2025學(xué)年北京市東城區(qū)五年級(jí)(上)期末語(yǔ)文試題(含答案)
- 人工智能在醫(yī)療領(lǐng)域的應(yīng)用
- 2025學(xué)年度人教PEP五年級(jí)英語(yǔ)上冊(cè)期末模擬考試試卷(含答案含聽(tīng)力原文)
- 全國(guó)中學(xué)生數(shù)學(xué)建模競(jìng)賽試題及答案
- LY/T 2482.2-2015東北、內(nèi)蒙古林區(qū)森林撫育技術(shù)要求第2部分:小興安嶺、完達(dá)山、張廣才嶺和老爺嶺林區(qū)
評(píng)論
0/150
提交評(píng)論