版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、沈陽(yáng)大學(xué)課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)名稱(chēng):數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)課程設(shè)計(jì)題目:最短路徑算法院(系):信息工程學(xué)院專(zhuān)業(yè):通信工程專(zhuān)業(yè)班 級(jí):12級(jí)通信2班學(xué) 號(hào):F1258212姓 名:劉維成指導(dǎo)教師:目 錄 TOC o 1-5 h z HYPERLINK l bookmark10 o Current Document 1課程設(shè)計(jì)介紹1 HYPERLINK l bookmark13 o Current Document 1.1課程設(shè)計(jì)內(nèi)容1 HYPERLINK l bookmark18 o Current Document 1.2課程設(shè)計(jì)要求1 HYPERLINK l bookmark24 o Current
2、 Document 2課程設(shè)計(jì)原理2 HYPERLINK l bookmark27 o Current Document 2.1課設(shè)題目粗略分析22.2原理圖介紹32.2.1功能模塊圖3 HYPERLINK l bookmark41 o Current Document 2.2.2流程圖分析33數(shù)據(jù)結(jié)構(gòu)分析83.1存儲(chǔ)結(jié)構(gòu)8 HYPERLINK l bookmark72 o Current Document 3.2算法描述8 HYPERLINK l bookmark82 o Current Document 4調(diào)試與分析9 HYPERLINK l bookmark85 o Current Do
3、cument 4.1調(diào)試過(guò)程9 HYPERLINK l bookmark90 o Current Document 4.2程序執(zhí)行過(guò)程9 HYPERLINK l bookmark93 o Current Document 參考文獻(xiàn)11 HYPERLINK l bookmark100 o Current Document 附 錄(關(guān)鍵部分程序清單) 121課程設(shè)計(jì)介紹1.1課程設(shè)計(jì)內(nèi)容設(shè)計(jì)程序,實(shí)現(xiàn)最短路徑的求法,系統(tǒng)主要功能如下:編寫(xiě)算法能夠建立帶權(quán)圖,并能夠用Dijkstra算法求該圖的最短路徑。能夠選擇圖上的任意一頂點(diǎn)做為開(kāi)始節(jié)點(diǎn)。最短路徑輸出不必采用圖 形方式,可頂點(diǎn)序列方式輸出。1.2
4、課程設(shè)計(jì)要求帶權(quán)圖的頂點(diǎn)信息用字符串,數(shù)據(jù)可自定。參考相應(yīng)的資料,獨(dú)立完成課程設(shè)計(jì)任務(wù)。較規(guī)范課程設(shè)計(jì)報(bào)告和軟件代碼。2課程設(shè)計(jì)原理2.1課設(shè)題目粗略分析根據(jù)課設(shè)題目要求,擬將整體程序分為三大模塊。兩個(gè)子模塊相互獨(dú)立,沒(méi) 有嵌套調(diào)用的情況,在主模塊中調(diào)用上面兩個(gè)子模塊以下是三個(gè)模塊的大體分析:建立有向圖的存儲(chǔ)結(jié)構(gòu).應(yīng)用Dijkstra算法求出該有向圖的最短路徑。在主函數(shù)中調(diào)用上面兩個(gè)子函數(shù),完成求最短路徑的程序設(shè)計(jì)。4.2.2原理圖介紹2.2.1功能模塊圖2.2.2流程圖分析1.主函數(shù)圖2.1功能模塊圖2.2主函數(shù)流程圖2. Create 函數(shù)3.2.3Create函數(shù)流程圖Dijkstra
5、函數(shù)i=12.4Dijkstra函數(shù)流程圖3數(shù)據(jù)結(jié)構(gòu)分析3.1存儲(chǔ)結(jié)構(gòu)一個(gè)圖的鄰接矩陣表示是唯一的。圖的鄰接矩陣表示,除了需要用一個(gè)二維數(shù)組 存儲(chǔ)頂點(diǎn)之間相鄰關(guān)系的鄰接矩陣外,通常還需要使用一個(gè)具有n個(gè)元素的一維 數(shù)組存儲(chǔ)頂點(diǎn)信息,其中下標(biāo)為i的元素存儲(chǔ)頂點(diǎn)vi的信息。因此,圖的鄰接矩 陣的存儲(chǔ)結(jié)構(gòu)定義如下:#define MVNum 50typedef struct VertexType vexsMVNum;Adjmatrix arcsMVNumMVNum;Mgraph;3.2算法描述Dijkstra算法核心是貪心,實(shí)質(zhì)是按路徑長(zhǎng)度遞增產(chǎn)生諸頂點(diǎn)的最短路徑算 法。迪杰斯特拉算法可用自然語(yǔ)言描
6、述如下:初始化S和D,置空最短路徑終點(diǎn)集,置初始的最短路徑值;Sv1=TRUE;Dv1=0;While(S集中的頂點(diǎn)數(shù)n)開(kāi)始循環(huán),每次求的v1到某個(gè)v頂點(diǎn)的最短路徑,并將v加到S集中; Sv=TRUE;更新當(dāng)前最短路徑及距離。2Dijkstra算法結(jié)束后,通過(guò)設(shè)置一個(gè)數(shù)組記錄下一個(gè)節(jié)點(diǎn)的前趨節(jié)點(diǎn),然后 通過(guò)倒敘的方式輸出該最短路徑。4調(diào)試與分析4.1調(diào)試過(guò)程在調(diào)試程序是主要遇到一下幾類(lèi)問(wèn)題:程序完成后,調(diào)試時(shí)沒(méi)有發(fā)現(xiàn)問(wèn)題,但是當(dāng)輸入開(kāi)始節(jié)點(diǎn)后,運(yùn)行框卻不停的 出現(xiàn)”-a”,后來(lái)重新檢查程序時(shí)發(fā)現(xiàn)for循環(huán)的括號(hào)后面多了一個(gè)”二 去掉該 分號(hào)之后,程序可以運(yùn)行。程序可以運(yùn)行,但是輸出結(jié)果不是有
7、序的,解決方法,設(shè)立一個(gè)前驅(qū)數(shù)組,用 以記錄節(jié)點(diǎn)的雙親節(jié)點(diǎn),然后按照倒敘的方式讀出該條最短路徑的有向序列。4.2程序執(zhí)行過(guò)程4.1程序執(zhí)行過(guò)程4.2程序執(zhí)行過(guò)程參考文獻(xiàn)數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠓椒ㄅcC+描述),殷人昆等,清華大學(xué)出版社, 2010年3月。算法與數(shù)據(jù)結(jié)構(gòu)習(xí)題精解和實(shí)驗(yàn)指導(dǎo),寧正元等,清華大學(xué)出版社, 2009年6月。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì),蘇仕華等,機(jī)械工業(yè)出版社,2010年3月。C程序設(shè)計(jì),譚浩強(qiáng)編,清華大學(xué)出版社,2006年6月。錄(關(guān)鍵部分程序清單)程序代碼#include#include#define MVNum 100#define Maxint 32767typedef cha
8、r VertexType;typedef int Adjmatrix;typedef enum FALSE,TRUEboolean;typedef struct VertexType vexsMVNum;Adjmatrix arcsMVNumMVNum;MGraph;int D1MVNum,P1MVNum;int DMVNumMVNum,PMVNumMVNum;void CreateMGraph(MGraph *G,int n,int e)int i,j,k,w;char a,b;for(i=1;ivexsi=i;for(i=1;i=n;i+)for(j=1;jarcsij=Maxint;pr
9、intf(輸入d 條邊的 i,j 及 w:n,e);for(k=1;karcsij=w;printf(有向圖的存儲(chǔ)結(jié)構(gòu)建立完畢!n);void Dijkstra(MGraph G,int v1,int n)int D2MVNum,P2MVNum;int v,i,w,min;boolean SMVNum;for(v=1;v=n;v+)Sv=FALSE;D2v=G.arcsv1v;if(D2vMaxint)P2v=v1;elseP2v=0;D2v1=0;Sv1=TRUE;for(i=2;i=n;i+)min=Maxint;for(w=1;w=n;w+)if(!Sw&D2wmin)v=w;min=D
10、2w;Sv=TRUE;for(w=1;w=n;w+)if(!Sw&(D2v+G.arcsvwD2w)D2w=D2v+G.arcsvw;P2w=v;printf(路徑長(zhǎng)度路徑n);for(i=1;i=n;i+)printf(%5d,D2i);printf(%5c,i-1+a);v=P2i;while(v!=0)printf(-%c,v-1+a);v=P2v;printf(n);void main()MGraph G;int n,e,v;char ch;printf(-輸入圖中頂點(diǎn)個(gè)數(shù)和邊數(shù)n,e:);scanf(%d,%d”,&n,&e);CreateMGraph(&G,n,e);while(1
11、)printf(求最短路徑,輸入開(kāi)始點(diǎn)v:);fflush(stdin);scanf(%c”,&ch);v=ch-a+1;Dijkstra(G,v,n);課程設(shè)計(jì)總結(jié):本次課程設(shè)計(jì)涉及到的范圍很廣,讓我能夠比較系統(tǒng)的對(duì)C語(yǔ)言和數(shù)據(jù)結(jié)構(gòu) 進(jìn)行一次整理和復(fù)習(xí)。同時(shí)有了很多的體會(huì)和經(jīng)驗(yàn)。又一次復(fù)習(xí)了 C語(yǔ)言,在這次課程設(shè)計(jì)中我體會(huì)到C語(yǔ)言超強(qiáng)的邏輯性, 能夠熟練使用VC+的編譯環(huán)境,也對(duì)這兩門(mén)課程有了新的認(rèn)識(shí),他們既有聯(lián)系, 又相互區(qū)別,在編寫(xiě)程序過(guò)程中要靈活應(yīng)用。對(duì)數(shù)據(jù)結(jié)構(gòu)的理解有待加強(qiáng),這次課程設(shè)計(jì)應(yīng)用的算法是Dijkstra算 法。在學(xué)習(xí)的過(guò)程中自己就對(duì)這方面的知識(shí)比較生疏,所以剛拿到這個(gè)課設(shè)題目 時(shí),自己還是有些不自信,好在自己沒(méi)有氣餒,一步一步的努力終于取得了成功。此次設(shè)計(jì)讓我意識(shí)到程序設(shè)計(jì)要求我們必須有不放棄的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024個(gè)人民間借款合同范本格式
- 2024年度家具搬運(yùn)與安裝合同
- 職業(yè)危害課件教學(xué)課件
- 2024年建筑工程抹灰班組承包合同
- 2024年度財(cái)務(wù)咨詢(xún)與審計(jì)服務(wù)協(xié)議
- 煙花創(chuàng)意課件教學(xué)課件
- 2024健身器材代銷(xiāo)合同
- 2024年度汽車(chē)銷(xiāo)售代理協(xié)議
- 2024年度環(huán)保項(xiàng)目工程咨詢(xún)服務(wù)合同
- 2024品牌授權(quán)與加盟合作協(xié)議
- 大數(shù)據(jù)在文學(xué)作品影響力分析中的應(yīng)用
- 數(shù)字貨幣對(duì)會(huì)計(jì)的影響
- 2024-2029年中國(guó)船用軸帶發(fā)電機(jī)行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展研究報(bào)告
- 我的家鄉(xiāng)吉林課件
- 云南開(kāi)放大學(xué)學(xué)前兒童社會(huì)教育離線(xiàn)作業(yè)1-4
- 二年級(jí)100以?xún)?nèi)加減乘除混合口算題(直接打印)
- 寫(xiě)作與溝通智慧樹(shù)知到期末考試答案章節(jié)答案2024年杭州師范大學(xué)
- 2023全國(guó)大學(xué)生網(wǎng)絡(luò)安全知識(shí)競(jìng)賽題庫(kù)及答案大全
- 新課標(biāo)“物聯(lián)網(wǎng)實(shí)踐與探索”模塊教學(xué)設(shè)計(jì)與實(shí)施
- 大學(xué)生職業(yè)生涯規(guī)劃書(shū)工業(yè)機(jī)器人技術(shù)專(zhuān)業(yè)
- 《中華民族多元一體格局》
評(píng)論
0/150
提交評(píng)論