算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)《蘭州道路交通網(wǎng)絡(luò)信息查詢?cè)闯绦颉穇第1頁(yè)
算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)《蘭州道路交通網(wǎng)絡(luò)信息查詢?cè)闯绦颉穇第2頁(yè)
算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)《蘭州道路交通網(wǎng)絡(luò)信息查詢?cè)闯绦颉穇第3頁(yè)
算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)《蘭州道路交通網(wǎng)絡(luò)信息查詢?cè)闯绦颉穇第4頁(yè)
算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)《蘭州道路交通網(wǎng)絡(luò)信息查詢?cè)闯绦颉穇第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

蘭州道路交通網(wǎng)絡(luò)信息查詢#include<stdio.h>#include<stdlib.h>#defineMVNum100//最大頂點(diǎn)數(shù)#defineMaxint32767enumboolean{FALSE,TRUE};typedefcharVertexType;typedefintAdjmatrix;typedefstruct{VertexTypevexs[MVNum];//頂點(diǎn)數(shù)組,類型假定為char型Adjmatrixarcs[MVNum][MVNum];//鄰接矩陣,假定為int型}MGraph;voidCreateMGraph(MGraph*G,intn,inte){//采用鄰接矩陣表示法構(gòu)造有向圖G,n,e表示圖的當(dāng)前頂點(diǎn)數(shù)和邊數(shù)intarcs[MVNum][MVNum];inti,j,k,w;for(i=1;i<=n;i++)G->vexs[i]=(char)i;for(i=1;i<=n;i++)for(j=1;j<=n;j++)G->arcs[i][j]=Maxint;//初始化鄰接矩陣printf("shuru%dtiaobiandei,j,w:\n",e);for(k=1;k<=e;k++){//讀入e條邊,建立鄰接矩陣scanf("%d,%d,%d",&i,&j,&w);G->arcs[i][j]=w;}printf("youxiangtudecunchujiegoujianliwanbi!\n");}voidDijkstra(MGraph*G,intv1,intn){//用Dijkstra算法求有向圖G的v1頂點(diǎn)到其他頂點(diǎn)v的最短路徑P[v]及其權(quán)D[v]//設(shè)G是有向圖的鄰接矩陣,若邊〈i,j〉不存在,則G[i][j]=Maxint//S[v]為真當(dāng)且僅當(dāng)v∈S,即已求得從v1到v的最短路徑intD2[MVNum],P2[MVNum];intv,i,w,min;enumbooleanS[MVNum];for(v=1;v<=n;v++){//初始化S和DS[v]=FALSE;//置空最短路徑終點(diǎn)集D2[v]=G->arcs[v1][v];//置初始的最短路徑值if(D2[v]<Maxint)P2[v]=v1;//v1是v的前趨(雙親)elseP2[v]=0;//v無(wú)前趨}D2[v1]=0;S[v1]=TRUE;//S集初始時(shí)只有源點(diǎn),源點(diǎn)到源點(diǎn)的距離為0//開(kāi)始循環(huán),每次求得v1到某個(gè)v頂點(diǎn)的最短路徑,并加v到s集中for(i=2;i<n;i++){//其余n-1個(gè)頂點(diǎn)min=Maxint;for(w=1;w<=n;w++)if(!S[w]&&D2[w]<min){v=w;min=D2[w];}//w頂點(diǎn)離v1頂點(diǎn)更近S[v]=TRUE;for(w=1;w<=n;w++)//更新當(dāng)前最短路徑及距離if(!S[w]&&(D2[v]+G->arcs[v][w]<D2[w])){D2[w]=D2[v]+G->arcs[v][w];P2[w]=v;}//End_if}//End_forprintf("lujingchangdulujing\n");for(i=1;i<=n;i++){printf("%5d",D2[i]);printf("%5d",i);v=P2[i];while(v!=0){printf("<-%d",v);v=P2[v];}printf("\n");}}voidFloyd(MGraph*G,intn){intD[MVNum][MVNum],P[MVNum][MVNum];inti,j,k,v,w;for(i=1;i<=n;i++)//設(shè)置路徑長(zhǎng)度D和路徑path初值for(j=1;j<=n;j++){if(G->arcs[i][j]!=Maxint)P[i][j]=j;//j是i的后繼else P[i][j]=0; D[i][j]=G->arcs[i][j];}for(k=1;k<=n;k++) {for(i=1;i<=n;i++)//做k次迭代,每次均試圖將頂點(diǎn)k擴(kuò)充到當(dāng)前求得的從i到j(luò)的最短路徑Pij上 for(j=1;j<=n;j++) {if(D[i][k]+D[k][j]<D[i][j]){ D[i][j]=D[i][k]+D[k][j];//修改長(zhǎng)度 P[i][j]=P[i][k]; }}}}intD1[MVNum],P1[MVNum];intD[MVNum][MVNum],P[MVNum][MVNum];voidmain(){MGraph*G;intm,n,e,v,w,k;intxz=1;G=(MGraph*)malloc(sizeof(MGraph));printf("shurutuzhongdingdiangeshuhebianshun,e:");scanf("%d,%d",&n,&e);CreateMGraph(G,n,e);//建立圖的存儲(chǔ)結(jié)構(gòu)while(xz!=0){printf("*****qiudefangzhijiandezuiduanlujing*****\n");printf("==============================\n");printf("1,qiuyigedefangdaosuoyoudefangdezuiduanlujing\n");printf("2,qiurenyilianggedefangzhijiandezuiduanlujing\n");printf("===============================\n");printf("qingxuanze:1or2,xuanze0exit:");scanf("%d",&xz);if(xz==2){Floyd(G,n);//調(diào)用費(fèi)洛伊德算法printf("shuruqidianhezhongdian:v,w:");scanf("%d,%d",&v,&w);k=P[v][w];if(k==0)printf("dingdian%ddao%dwulujing!\n",v,w);else{printf("congdingdian%ddao%ddezuiduanlujingshi:%d",v,w,v);while(k!=w){printf("->%d",k);//輸出后繼頂點(diǎn)k=P[k][w];//繼續(xù)找下一個(gè)后繼頂點(diǎn)}printf("->%d",w);//輸出終點(diǎn)wprintf("lujingchangdu:%d\n",D[v][w]);}}elseif(xz==1){

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論