




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、榆林學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告題目城市交通咨詢系統(tǒng)作者皿專業(yè)信息管理與信息系統(tǒng)學(xué)號指導(dǎo)老師張慧答辯時間目錄1 .系統(tǒng)需求分析11.1 用戶需求分析11.2 功能需求分析21.3 數(shù)據(jù)需求分析21.4 小結(jié)32 .系統(tǒng)設(shè)計32.1 系統(tǒng)設(shè)計功能32.2 每個模塊的具體功能。2.2.1 采用C語言定義相關(guān)數(shù)據(jù)類型42.2.2 建立鄰接矩陣交通網(wǎng)絡(luò):42.2.3 查詢指定城市到其他城市自己建的最短路程:62.2.4 查詢?nèi)我鈨蓚€城市之間的一條最短路徑:72.3 主函數(shù)的調(diào)用關(guān)系圖83 .系統(tǒng)測試93.1 操作說明93.2 測試數(shù)據(jù)103.2.1 戶進(jìn)入界面:103.2.2 具體功能的實(shí)現(xiàn)113.2.3
2、 結(jié)束程序124 .總結(jié)135 .致謝136 .附錄141.系統(tǒng)需求分析現(xiàn)如今網(wǎng)絡(luò)非常發(fā)達(dá),無論人們出差,旅游或者做其他的出行之時,都會想到道路問題,切不僅僅關(guān)心的是交通費(fèi)用,而且對于里程和所需要的時間等的問題也是同樣的關(guān)心,在此系統(tǒng)中,完全面向用戶,可以用一個圖結(jié)構(gòu)來表示交通網(wǎng)絡(luò)系統(tǒng),利用計算機(jī)建立一個交通咨詢系統(tǒng)。且在圖中,頂點(diǎn)表示城市,邊表示城市之間的交通關(guān)系。設(shè)計一個交通咨詢系統(tǒng),能夠讓旅客咨詢從任一城市頂點(diǎn)到達(dá)另外一個城市之間頂點(diǎn)的最短路徑問題(最短里程問題)。對系統(tǒng)分析,主要從以下幾個方面進(jìn)行分析。1 .用戶需求分析2 .功能需求分析3 .數(shù)據(jù)需求分析1.1 用戶需求分析現(xiàn)如今網(wǎng)絡(luò)
3、非常發(fā)達(dá),無論人們出差,旅游或者做其他的出行之時,都會想到道路問題,切不僅僅關(guān)心的是交通費(fèi)用,而且對于里程和所需要的時間等的問題也是同樣的關(guān)心,在此系統(tǒng)中,完全面向用戶,可以用一個圖結(jié)構(gòu)來表示交通網(wǎng)絡(luò)系統(tǒng),利用計算機(jī)建立一個交通咨詢系統(tǒng)。且在圖中,頂點(diǎn)表示城市,邊表示城市之間的交通關(guān)系。設(shè)計一個交通咨詢系統(tǒng),能夠讓旅客咨詢從任一城市頂點(diǎn)到達(dá)另外一個城市之間頂點(diǎn)的最短路徑問題(最短里程問題)。當(dāng)要查詢某兩個城市之間的最短交通路線或者其中一個城市到達(dá)其余城市的最短路線時,是一個很繁瑣的過程。根據(jù)用戶自己的需求,可以自定義地圖,此程序就是主要以滿足用戶自己的環(huán)境與實(shí)際情況,在難以計算路程時,可將地圖
4、輸入進(jìn)行計算,系統(tǒng)將會為用戶提供所用路徑最短的出現(xiàn)路線,更好的滿足用戶需求。以下是針對咨詢用戶說明其最基本的模塊功能。(1)進(jìn)入程序后,用戶可自己設(shè)置城市的個數(shù),以及所有城市之間總共的路徑,且分別用頂點(diǎn)和邊表示城市與路徑(2)用戶根據(jù)自己設(shè)置的城市個數(shù)和路徑數(shù),具體輸入每個路徑的起始點(diǎn)以及每條路徑的長度。(3)進(jìn)入菜單選擇界面(4)選擇2,系統(tǒng)為用戶進(jìn)行提供任意城市的交通查詢,即查詢?nèi)我鈨蓚€城市之間的一條最短路徑。(5)選擇1,系統(tǒng)為用戶提供指定城市的交通查詢,即查詢指定城市到其他城市之間的最短路徑。如若輸入頂點(diǎn)超出范圍顯示錯誤,系統(tǒng)回到菜單重新選擇(6)選擇0,系統(tǒng)推出程序。1.2 功能需求
5、分析城市交通咨詢系統(tǒng)總體的設(shè)計目標(biāo):用數(shù)據(jù)結(jié)構(gòu)中的鄰接矩陣作數(shù)據(jù)結(jié)構(gòu),并結(jié)合數(shù)據(jù)結(jié)構(gòu)有向圖的最短路徑計算方法,結(jié)合相應(yīng)的數(shù)據(jù)算法以及c語言的相關(guān)知識,編寫一個良好的,具有可操作性的,以及能方便用戶的使用,包括自定義地圖,路徑與城市個數(shù)可結(jié)合實(shí)際情況而言,相對操作,簡便易懂并無難度。系統(tǒng)在菜單可根據(jù)命令進(jìn)行相應(yīng)的操作,已滿足用戶的需求。城市交通系統(tǒng)基本功能根據(jù)以上分析,此系統(tǒng)具備以下功能:(1) 用戶進(jìn)入后的地圖創(chuàng)建界面(明確地圖中城市的個數(shù)以及路徑的個數(shù))(2) 地圖完善界面(用戶自己輸入地圖中相關(guān)路徑的起始點(diǎn)以及路徑長度)(3) 菜單界面包含兩條命令(4) 命令1求一個城市到所有城市的最短距
6、離(5) 命令2求任意的兩個城市之間的最短距離(6) 回復(fù)命令0可推出程序。1.3 數(shù)據(jù)需求分析用鄰接矩陣建立交通網(wǎng)絡(luò)模塊VertexTypevexsMVNum;/頂點(diǎn)數(shù)組,類型假定為charAdjmatrixarcsMVNumMVNum;/鄰接矩陣,類型假定為int型建立鄰接矩陣,用函數(shù)voidCreateMGraph(MGraph*G,intn,inte)/采用鄰接矩陣表示法構(gòu)造有向圖Gn、e表示圖的當(dāng)前頂點(diǎn)數(shù)和邊數(shù)用迪杰斯特拉算法計算某頂點(diǎn)到其余頂點(diǎn)的最短路徑用函數(shù)voidDijkstra(MGraph*G,intn,inte)來定義此函數(shù)采用鄰接矩陣表示法構(gòu)造有向圖G,n、e表示圖的當(dāng)
7、前頂點(diǎn)數(shù)和邊數(shù)用弗洛伊德算法求任意一對頂點(diǎn)的最短路徑用函數(shù)voidFloyd(MGraph*G,intn)來定義。利用費(fèi)洛伊德算法,求出最短路徑。1.4 小結(jié)從各種需求方面下手改編代碼,并不斷調(diào)試,讓界面更加友好。不斷地嘗試上,在各種問題上不斷突破,慢慢的完善代碼,等最大限度的滿足用戶需求。這幾天短時間的課程設(shè)計也讓我認(rèn)識到了自己在這門課程上還面臨著許許多多的問題,為以后的具體實(shí)踐明確了努力方向。同時,城市交通咨詢系統(tǒng)的實(shí)現(xiàn),為用戶更好的解決了再實(shí)際出行時遇到的路徑問題,最初的設(shè)計也為代碼敲定了編寫方向。再三考慮后確定了系統(tǒng)的功能,確定什么功能有實(shí)現(xiàn)必要,什么功能可有可無。在這樣的基礎(chǔ)之下使得
8、思路更加清晰2.系統(tǒng)設(shè)計本程序首先是用戶編輯界面,用戶根據(jù)自己的需求編寫地圖,從而加入頂點(diǎn)的數(shù)組之中,創(chuàng)建的地圖用鄰接矩陣存儲,在從主函數(shù)之中進(jìn)行調(diào)用,實(shí)現(xiàn)對兩個算法的調(diào)用。用戶在輸入頂點(diǎn)以及邊的信息都會存儲,在存儲成功之后會提示用戶存儲成功,之后進(jìn)入到菜單界面,菜單界面提供兩種選擇口令,分別可以調(diào)運(yùn)Dijkstra和Floyd算法,調(diào)用之后輸入相應(yīng)的口令以及要查詢的城市編號,算法會根據(jù)鄰接矩陣存儲的地圖進(jìn)行計算,求出最短路徑。在以后使用完系統(tǒng)后,可輸入口令0,系統(tǒng)會結(jié)束一切運(yùn)算,退出程序。2.1 系統(tǒng)設(shè)計功能菜單界面的主要功能有兩個:(1)、求一個城市到所有城市的最短距離(2)、求任意的兩個
9、城市之間的最短距離城市交通咨詢系統(tǒng)主要有三個模塊分別為:(1)、鄰接矩陣的輸入與存儲構(gòu)建交通網(wǎng)絡(luò)(2)、任意兩個城市的最短距離查詢(3)、兩個指定城市的最短距離查詢主界面的模塊概念圖如圖2-1:用戶進(jìn)入系統(tǒng)交通網(wǎng)絡(luò)構(gòu)建輸入頂點(diǎn)和邊數(shù)n,ei,j,w兩個指定城市的2.2每個模塊的具體功能。2.2.1采用C語言定義相關(guān)數(shù)據(jù)類型1.定義一個,用來存儲頂點(diǎn)信息typedef structVertexType vexsMAX;Adjmatrix arcsMAXMAX;MGraph;void Dijkstra(MGraph *G,int v,int n);3.定義一個Floyd函數(shù)void Floyd(M
10、Graph *G,int n);2.2.2建立鄰接矩陣交通網(wǎng)絡(luò):結(jié)果,退出系統(tǒng)圖2.12.定義一個 Dijkstra 函數(shù)任意兩個城市的開始k<=e,k+圖2-2鄰接矩陣構(gòu)造圖結(jié)構(gòu)函數(shù)數(shù)據(jù)類型定義:typedefstructVertexTypevexsMAX;AdjmatrixarcsMAXMAX;MGraph;voidCreateMGraph(MGraph*G,intn,inte)/inti,j,k,w;for(i=1;i<=n;i+)G->vexsi=(char)i;for(i=1;i<=n;i+)鄰接矩陣構(gòu)成肩向圖for(j=1;j<=n;j+)G->
11、arcsij=IDF;printf("輸入族邊的i,j及w:n",e);for(k=1;k<=e;k+)scanf("%d,%d,%d",&i,&j,&w);G->arcsij=w;printf("有向圖的存儲結(jié)構(gòu)建立完畢!n");其中vexsMAX保存頂點(diǎn)信息,arcsMAXMAX用于保存邊與邊之間的信息。在構(gòu)建時通過輸入的邊數(shù)i,j作為矩陣的行、列確定頂點(diǎn)的出度和入度。用鄰接矩陣方法存儲圖。2.2.3查詢指定城市到其他城市自己建的最短路程:圖2-3斯應(yīng)用狄克斯特拉算法來具體/現(xiàn)2一步的需求?;?/p>
12、思想:設(shè)G(V,E)是一個帶權(quán)有向圖,把圖中的頂點(diǎn)集合V分成兩組,第一組為已經(jīng)求出的最短路徑的頂點(diǎn)集合(用S表示,初始時S中只有一個原點(diǎn),以后每求得一條最短路徑就加入的集合S中,知道全部頂點(diǎn)都加入到集合中),第二組,為其余未確定最短路徑的頂點(diǎn)集合(用U表示),按最短路徑長度的遞增次序依次把第二組的頂點(diǎn)就如S中。如果兩個頂點(diǎn)之間有權(quán)值,并且各個路徑的權(quán)值不同,就把最小的作為頂點(diǎn)與頂點(diǎn)的最短距離。ky圖2-4如圖所示若x+y<z,則最短的路徑就是v=>k=>Uo同理若x+y<z,則最短的路徑就是v=>u,Dv1=0;Sv1=1;/原點(diǎn)編號放入s中for(i=2;i&l
13、t;n;i+)(min=IDF;for(w=1;w<=n;w+)if(!Sw&&Dw<min)(v=w;min=Dw;Sv=1;/修改頂點(diǎn)u放入s中for(w=1;w<=n;w+)if(!Sw&&(Dv+G->arcsvw<Dw)Dw=Dv+G->arcsvw;Pw=v;2.2.4查詢?nèi)我鈨蓚€城市之間的一條最短路徑:其具體的流程圖如圖2-5所示:用鄰接矩陣保存圖存儲后,另外需要存一個二維數(shù)組A存放當(dāng)前頂點(diǎn)之間的最短路徑長度。分量Aij表示當(dāng)前頂點(diǎn)i到j(luò)的最短路徑長度。弗洛伊德算法的基本思維是遞推產(chǎn)生一個矩陣序列A0,A1,A2
14、,-.Ak,An,其中Ak皿表示從頂點(diǎn)到vi到頂點(diǎn)vj的路徑上所經(jīng)過的頂點(diǎn)編號不大于k的最短路徑長度A皿=cost皿A(k+1)ij=minAkij,Aki+1k+1+Akk+1j弗洛伊德主要算法,若Akij已求出,頂點(diǎn)i到頂點(diǎn)k+1的路徑長度為Akik+1,頂點(diǎn)路徑長度為Ak皿,頂點(diǎn)k+1到頂點(diǎn)j的路徑長度為Akk+1j,如果此時Akik+1+Akk+1j<Ak皿,則將原來的頂點(diǎn)i到頂點(diǎn)j的路徑改為頂點(diǎn),否則不需要修改頂點(diǎn)i至”的路徑。k+Aki,k+1Akk+1,jAki,j圖2-6若Akik+1+Akk+1j卜Akij,修改路徑過程:for(k=1;k<=n;k+)for(i
15、=1;i<=n;i+)for(j=1;j<=n;j+)if(Dik+Dkj<D皿)Dij=Dik+Dkj;修改長度Pij=Pik;2.3主函數(shù)的調(diào)用關(guān)系圖程序是通過進(jìn)入程序之后,用戶開始根據(jù)自己的實(shí)際情況來輸入具體的地圖參數(shù),構(gòu)建自己所需要的地圖大小以及城市個數(shù)和路徑長短。當(dāng)輸入完畢參數(shù)之后,用戶進(jìn)入主菜單查詢界面。可根據(jù)不同的選口令,用戶可以選擇不同的系統(tǒng)功能。查詢1可以進(jìn)入狄克斯特函數(shù),來求取得到一個城市到所有城市自己還能的具體的最短路徑以及走法。當(dāng)用戶輸入口令2之后,可以進(jìn)入弗洛伊德函數(shù)的調(diào)用,更加提示用戶輸入想要查詢的兩個城市,系統(tǒng)會根據(jù)地圖自動計算出所需要的最短距離
16、以及最短路徑,完美的滿足用戶自己的需求。當(dāng)輸入口令0之后,用戶可以選擇退出程序,結(jié)束城市查詢。同時由于地圖的鄰接矩陣建立是由malloc函數(shù)申請的空間,在結(jié)束運(yùn)行之后,系統(tǒng)自動釋放空間,從而減少系統(tǒng)空間的占有率。退出輸出結(jié)輸出結(jié)f,'結(jié)束,圖2-73.系統(tǒng)測試3.1 操作說明雙擊“城市交通咨詢系統(tǒng).exe”,根據(jù)屏幕菜單提示信息,選擇任意可選項進(jìn)行相關(guān)操作。根據(jù)提示開始輸入城市個數(shù)以及路徑總個數(shù)。之后開始建立地圖,建立成功后根據(jù)菜單界面選擇功能。3.2 測試數(shù)據(jù)輸入測試數(shù)據(jù)可以對程序進(jìn)行如下的圖的數(shù)據(jù)進(jìn)行數(shù)據(jù)測試。卜面運(yùn)行程序檢查輸入,輸出結(jié)果(1)、輸入城市個數(shù)與路徑個數(shù)圖3-1圖3
17、-2(2)輸入具體的頂點(diǎn)以及邊的個數(shù):圖3-3地圖輸入完成,有向圖存儲結(jié)構(gòu)建立完成3.2.2、具體功能的實(shí)現(xiàn)1、求一個城市到所有城市之間的最短距離。查詢一個頂點(diǎn)到其他頂點(diǎn)的最短路徑。如下圖。經(jīng)過手工計算:1=>1長度=0,1=>2長度=8,1=>3長度=8+6=14,1=>4長度=8+5=13;和下圖完全一致=1,2,8=22E-2,4卜5-3j6=3tL437''宣向四人存儲結(jié)構(gòu)律立憲甲!一m:t*±*4*求域幣y二:產(chǎn);u-*xh*h*L求一卜城tr到所有城t的最原距離=Z第任意的桿個城市之的聶達(dá)界高=:盾選擇:1或匕注擇。退出:1求工源蹌
18、j三旬源;.二二疇徑隹度,路徑二=0I=82<-1-1+3<-2<-1=134<-2<-1點(diǎn)*本加求城市之間的最加笈前要*本*4*二三百二不建運(yùn)麗加彳曲3盲品高=3求任意的兩個城市之間的最短距離=請選擇t1或L透邪0退出上圖3-4為保證結(jié)果正確換一個頂點(diǎn)進(jìn)行:如頂點(diǎn)2到其他的距離經(jīng)過手工計算:2=>1長度=6+4=10,2=>2長度=0,2=>3長度=6,2=>4長二二二二請選擇:1或2,選擇口退出士1求單源路衿,輸人源點(diǎn)v二2=踣役長度.踣役=二二二101<-3<-2二二二0263<-2=54<-2*粗皿制u0Mc
19、求城市之何的最近距離%*=1.求一個城市到所有城市的最短距離二=2.求任意的兩個城市之間的最短更離=度=5;和下圖完全一致圖3-52、求任意的兩個城市之間的最短距離例1到3之間的最短距離,經(jīng)過計算可得最短距離為1=>2=>3,且路徑=請選擇:1或2,選擇0退出;2輸入源點(diǎn)和終點(diǎn):v,w:1,3=從頂點(diǎn)1到3最短路徑是1->2->3二二二二路徑長度114_二二*宓*求城市之間的最短距離*=L求一個城市到所有城市的最短距離=二=二二2,求任意的兩個城市之間的最短距離=請選擇:1或,選擇0退出;為14,與下圖結(jié)果相同圖3-6為保證結(jié)果正確換一個頂點(diǎn)進(jìn)行:如頂點(diǎn)2到4之間的最短
20、路徑以及距離經(jīng)過計算可得2到4的最短路徑是2=>4,且最短路徑為5圖3-73.2.3、結(jié)束程序當(dāng)用戶輸入命令0時,結(jié)束程序圖3-84.總結(jié)通過這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計,我對數(shù)據(jù)結(jié)構(gòu)這門課程有了更深一步的了解,使我對數(shù)據(jù)結(jié)構(gòu)這門課程掌握以及運(yùn)用更加靈活。同時也讓我發(fā)現(xiàn)了自己在這門課上的不足與缺陷,同時也明確了自己在以后的類似課程中的具體學(xué)習(xí)方法。這次在應(yīng)用中,我發(fā)現(xiàn)了自己的很多不足,在編寫城市交通咨詢系統(tǒng)的過程中,自己C語言方面的只是掌握太少,很多功能需求只能退而求其次,一次又一次的更改,一次又一次的失敗,也終于是在最后也完成了自己的要求,同時我也知道了平時用功學(xué)習(xí)的重要性。尤其是在日常學(xué)習(xí)之
21、中,對于單一的只是點(diǎn)也許掌握的還不錯,但是自己動手太少,實(shí)踐經(jīng)驗嚴(yán)重不足,且面臨課程設(shè)計之時,要求多方面的只是結(jié)和編碼,對于我而言還是有很大的難度的。如此次對于鄰接矩陣的存儲于讀取,以及最短路徑算法的實(shí)現(xiàn),兩個及其重要的算法,狄克斯特拉算法和佛洛依德算法,在具體的應(yīng)用上還是有很多不足。通過此次課程設(shè)計,我也明白了對于一個完成的程序而言,想要完成它最重要的代碼,最初,也是最為重要的一個部分就是算法思想,以及具體程序功能規(guī)劃,只有最重要的地基部分完美實(shí)現(xiàn),才可以進(jìn)行接下來的具體代碼編程,以及更多細(xì)節(jié)上的完美。通過這次的課程設(shè)計我有懂得了好多數(shù)據(jù)結(jié)構(gòu)的知識,以前上課沒有聽的,不知道的,這次都有所了解
22、了,像有向圖的構(gòu)建,弗洛伊德算法,迪克斯特拉算法。這些知識從曾經(jīng)的聽說到現(xiàn)在的了解,進(jìn)了一大步。不但如此,這次的課設(shè)也是我感覺到了數(shù)據(jù)結(jié)構(gòu)的強(qiáng)大與神奇。漸漸的愛上他了。不僅讓我了解了數(shù)據(jù)結(jié)構(gòu)更加深了對它與C語言的聯(lián)系的理解。因為自己的不學(xué)習(xí),導(dǎo)致這次的課設(shè)變得如此的艱難。且因為自己生病住院也更是浪費(fèi)了很大的時間,對于我自己做課程設(shè)計的時間就少的可憐,這也無疑是對我更大的挑戰(zhàn)。在臨近答辯,我的代碼才基本完成,夜以繼日的努力也終于是讓我完成5 .致謝本次課程設(shè)計我遇到了極大的問題,不管是時間方面還是內(nèi)容方面,自己都顯得慌亂過,我能夠完成本次課程設(shè)計也完全感謝舍友的支持與幫助,在難點(diǎn)上能夠?qū)ξ疫M(jìn)行幫
23、助。尤其感謝我的知道老師張老師。感謝她在百忙之中抽出時間來為我解答疑惑,解決問題,她對我此次的課程設(shè)計有極大的幫助。再次感謝張老師。課程設(shè)計馬上結(jié)束,同時也謝謝所有的負(fù)責(zé)老師,謝謝她們這幾天對我們的付出,老師辛苦了。6 .附錄#include<stdio.h>#include<stdlib.h>#defineMVNum100最大頂點(diǎn)數(shù)#defineMaxint32767enumbooleanFALSE,TRUE;typedefcharVertexType;typedefintAdjmatrix;typedefstructVertexTypevexsMVNum;/頂點(diǎn)數(shù)組
24、,類型假定為charAdjmatrixarcsMVNumMVNum;/鄰接矩陣,類型假定為int型MGraph;intD1MVNum,P1MVNum;intDMVNumMVNum,PMVNumMVNum;/*建立有向圖的儲存結(jié)構(gòu)*/voidCreateMGraph(MGraph*G,intn,inte)/采用鄰接矩陣表示法構(gòu)造有向圖G,n、e表示圖的當(dāng)前頂點(diǎn)數(shù)和邊數(shù)inti,j,k,w;for(i=1;i<=n;i+)輸入頂點(diǎn)信息G->vexsi=(char)i;for(i=1;i<=n;i+)for(j=1;j<=n;j+)G->arcsij=Maxint;/初
25、始化鄰接矩陣printf("=輸入舔邊人i(起點(diǎn))、j(終點(diǎn))及w(路徑長度):n",e);for(k=1;k<=e;k+)/讀入e條邊,建立鄰接矩陣printf("=");scanf("%d,%d,%d",&i,&j,&w);G->arcsij=w;printf("=有向圖人存儲結(jié)構(gòu)建立完畢!=n");/*迪杰斯特拉算法*/voidDijkstra(MGraph*G,intv1,intn)/利用迪杰斯特拉算法,求出有向圖G的v1頂點(diǎn)到其他頂點(diǎn)v的最短路徑Pv及權(quán)DvintD2M
26、VNum,P2MVNum;intv,i,w,min;enumbooleanSMVNum;for(v=1;v<=n;v+)/初始化S和DSv=FALSE;/置空最短路徑終點(diǎn)集D2v=G->arcsv1v;/置初始的最短路徑值if(D2v<Maxint)P2v=v1;/v1是v的前趨(雙親)elseP2M=0;/v無前趨(雙親)D2v1=0;Sv1=TRUE;/S集初始時只有源點(diǎn),距離為0for(i=2;i<n;i+)/其余n-1個頂點(diǎn)min=Maxint;for(w=1;w<=n;w+)if(!Sw&&D2w<min)v=w;min=D2w;/
27、w頂點(diǎn)離v1頂點(diǎn)更近Sv=TRUE;for(w=1;w<=n;w+)/更新當(dāng)前最短路徑及距離if(!Sw&&(D2M+G->arcsvw<D2w)D2w=D2v+G->arcsvw;P2w=v;printf("=路徑長度,路徑=n");for(i=1;i<=n;i+)printf("=%5d",D2i);printf("%5d",i);v=P2i;while(v!=0)printf("<-%d",v);v=P2v;printf("n");/*費(fèi)
28、洛伊德算法*/voidFloyd(MGraph*G,intn)/利用費(fèi)洛伊德算法,求出最短路徑intij,k;for(i=1;i<=n;i+)for(j=1;j<=n;j+)(if(G->arcsij!=Maxint)Pi0=j;elsePiU=O;Dij=G->arcsiU;)for(k=1;k<=n;k+)(for(i=1;i<=n;i+)for(j=1;j<=n;j+)if(Dik+DkU<Dij)Dij=Dik+DkU;)voidmain()(printf("*歡迎使用城市交通咨詢系統(tǒng)*n");printf("n");printf("=n");MGrap
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村建房申請書模板2024
- 液壓與氣動技術(shù) 第2版 課件 項目八 典型液壓與氣動系統(tǒng)
- 員工內(nèi)部集資合同范本
- 土地招投標(biāo)居間合同范本
- 春分節(jié)氣知識探索
- 土地分包合同范本
- 辦公室工作人員述職報告總結(jié)
- 傳媒人的榮耀之路
- 出售修理車輛合同范本
- 初一英語學(xué)習(xí)與家庭
- GB/T 8897.1-2003原電池第1部分:總則
- 學(xué)雷鋒精神學(xué)習(xí)雷鋒日主題班會課件
- 劍橋少兒英語第一冊-Unit5-our-pets課件
- 《馬克思主義政治經(jīng)濟(jì)學(xué)概論》課程教學(xué)大綱
- 倉庫管理基礎(chǔ)知識培訓(xùn)模板課件
- 孤獨(dú)癥康復(fù)教育人員上崗培訓(xùn)練習(xí)題庫及答案
- 環(huán)境心理學(xué)課件
- 《質(zhì)量保證體系》情況說明
- 親人意外逝世的訃告微信群通知五篇-正式的去世訃告模板
- 中電朝陽250兆瓦智慧風(fēng)儲一體化風(fēng)電項目環(huán)評報告書
- 做一個幸福教師
評論
0/150
提交評論