c語(yǔ)言從入門到精通——第23章.ppt

c語(yǔ)言從入門到精通——第23章.ppt

ID:49202116

大?。?7.50 KB

頁(yè)數(shù):17頁(yè)

時(shí)間:2020-02-01

c語(yǔ)言從入門到精通——第23章.ppt_第1頁(yè)
c語(yǔ)言從入門到精通——第23章.ppt_第2頁(yè)
c語(yǔ)言從入門到精通——第23章.ppt_第3頁(yè)
c語(yǔ)言從入門到精通——第23章.ppt_第4頁(yè)
c語(yǔ)言從入門到精通——第23章.ppt_第5頁(yè)
資源描述:

《c語(yǔ)言從入門到精通——第23章.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、第23章火車車廂重排問(wèn)題描述問(wèn)題分析及實(shí)現(xiàn)開發(fā)過(guò)程常見(jiàn)問(wèn)題及解決第23章火車車廂重排問(wèn)題描述問(wèn)題分析及實(shí)現(xiàn)開發(fā)過(guò)程常見(jiàn)問(wèn)題及解決第23章火車車廂重排問(wèn)題描述問(wèn)題分析及實(shí)現(xiàn)開發(fā)過(guò)程常見(jiàn)問(wèn)題及解決第23章火車車廂重排問(wèn)題描述問(wèn)題分析及實(shí)現(xiàn)開發(fā)過(guò)程常見(jiàn)問(wèn)題及解決火車車廂重排一列亂序排列貨車車廂的火車,在經(jīng)過(guò)車站時(shí),可以從中間丟下這節(jié)車廂嗎?而這節(jié)車廂卻是終點(diǎn)站的車廂。那么,怎么樣才可以使得出發(fā)前就可以以最快的理想的方式排好車廂號(hào)呢?使之在每站只丟下最后一節(jié)車廂,停留不長(zhǎng)時(shí)間呢?本章講解這類問(wèn)題如何求解。

2、23.1問(wèn)題描述一列貨運(yùn)列車共有n節(jié)車廂,每節(jié)車廂將停放在不同的車站,假定n個(gè)車站的編號(hào)分別為1~n,貨運(yùn)列車按照第n站至第1站的次序經(jīng)過(guò)這些車站,車廂的編號(hào)與他們的目的地相同。為了便于從列車上卸下相應(yīng)的車廂,必須重新排列車廂,使各車廂從前至后都按照編號(hào)1到n的次序排列,當(dāng)所有的車廂都按照這種次序排列時(shí),在每個(gè)車站只需卸掉最后一節(jié)車廂即可。23.2問(wèn)題分析及實(shí)現(xiàn)23.2.1問(wèn)題分析23.2.2問(wèn)題實(shí)現(xiàn)23.2.3程序運(yùn)行23.2問(wèn)題分析及實(shí)現(xiàn)由問(wèn)題描述可知,我們要實(shí)現(xiàn)的是將車廂放入緩沖軌,在需要壓

3、棧時(shí)壓棧,需要出棧時(shí)出棧,最后將排序結(jié)果輸出23.2.1問(wèn)題分析在這個(gè)問(wèn)題的求解中,我們引入幾個(gè)緩沖鐵軌,在一個(gè)緩沖鐵軌中放入車廂c,如果沒(méi)有可用的緩沖鐵軌,則返回0,如果空間不足,則引發(fā)異常否則返回1,為車廂c尋找最優(yōu)的緩沖鐵軌。23.2.2問(wèn)題實(shí)現(xiàn)1.采用結(jié)構(gòu)體保存過(guò)程數(shù)據(jù)通過(guò)定義一個(gè)結(jié)構(gòu)體類型,此結(jié)構(gòu)體實(shí)現(xiàn)對(duì)列車車廂序號(hào)進(jìn)行棧的存儲(chǔ)和管理。那么,根據(jù)這個(gè)思路,代碼如下(代碼23-1.txt)。01#defineStackSize100/*棧大小100個(gè)元素*/02#defineMaxLeng

4、th100/*最大字符串長(zhǎng)度*/03typedefintDataType;/*棧元素的數(shù)據(jù)類型定義為整數(shù)*/04typedefstruct05{06DataTypedata[StackSize];07inttop;08}SeqStack;09voidInitial(SeqStack*S)/*置空棧*/10{11S->top=-1;12}13intIsEmpty(SeqStack*S)/*判???/14{15returnS->top==-1;16}17intIsFull(SeqStack*S)/*判

5、棧滿*/18{19returnS->top==StackSize-1;20}23.2.2問(wèn)題實(shí)現(xiàn)2.輸出結(jié)果將結(jié)果輸出至屏幕,以循環(huán)打印的方式,調(diào)用標(biāo)準(zhǔn)輸入輸出函數(shù)printf,將結(jié)果回顯。代碼如下(代碼23-2.txt)。23.2.2問(wèn)題實(shí)現(xiàn)01voidOutput(int*minH,int*minS,SeqStackH[],intk,intn)02{03inti;04intc=Pop(&H[*minS]);05printf("把車廂%d送入緩沖鐵軌%d輸出",*minH,*minS);06

6、*minH=n+2;07for(i=1;i<=k;i++)08if(!IsEmpty(&H[i])&&(c=Top(&H[i]))<*minH){09*minH=c;10*minS=i;11}12}23.2.2問(wèn)題實(shí)現(xiàn)3.將某個(gè)車廂號(hào)送入某個(gè)緩沖鐵軌鐵軌不空時(shí),在此鐵軌頂部的車廂編號(hào)最小,否則將一個(gè)車廂號(hào)通過(guò)緩沖鐵軌壓入棧。代碼如下(代碼23-3.txt)。23.2.2問(wèn)題實(shí)現(xiàn)4.火車車廂重排主函數(shù)將所有火車車廂按數(shù)組規(guī)定的順序送入緩沖鐵軌等待排序。代碼如下(代碼23-4.txt)23.2.3程序

7、運(yùn)行單擊【調(diào)試】工具欄中的按鈕,根據(jù)提示輸入數(shù)據(jù),按【Enter】鍵,即可輸出如下結(jié)果。23.3開發(fā)過(guò)程常見(jiàn)問(wèn)題及解決開發(fā)過(guò)程常見(jiàn)問(wèn)題及解決辦法如下,僅供參考。⑴程序輸出結(jié)果一直是同樣的結(jié)果,不代表程序有錯(cuò)誤,而是因?yàn)槌绦蚰康木褪且専o(wú)論列車車廂號(hào)如何亂序,最終排的序是順序的。⑵此程序的難點(diǎn)之一如何模擬停在鐵軌上的列車。采用數(shù)組來(lái)模擬,這是最普遍的一種方法。

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。