久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
有關(guān)數(shù)據(jù)結(jié)構(gòu)的C++程序-城市交通最短路徑問題
[打印本頁]
作者:
kid4869
時(shí)間:
2019-5-21 18:31
標(biāo)題:
有關(guān)數(shù)據(jù)結(jié)構(gòu)的C++程序-城市交通最短路徑問題
設(shè)計(jì)一個(gè)交通查詢系統(tǒng),能讓游客查詢從任一城市頂點(diǎn)到另一城市頂點(diǎn)之間的最短路徑或最低花費(fèi)或最少時(shí)間等問題。對(duì)于不同查詢要求,可輸入城市間的路程或所需時(shí)間或所需費(fèi)用。
本程序共分三個(gè)部分:
(1)建立交通網(wǎng)絡(luò)圖的存儲(chǔ)結(jié)構(gòu);
(2)單源最短路徑;
(3)實(shí)現(xiàn)兩個(gè)城市頂點(diǎn)之間的最短路徑。
0.png
(279.41 KB, 下載次數(shù): 50)
下載附件
2019-5-21 23:33 上傳
單片機(jī)源程序如下:
#include <stdio.h>
#include <stdlib.h>
#define MVNum 100
#define Maxint 32767
enum boolean{FALSE,TRUE};
typedef char VertexType;
typedef int Adjmatrix;
typedef struct {
VertexType vexs[MVNum];
Adjmatrix arcs[MVNum][MVNum];
}MGraph;
int D1[MVNum],P1[MVNum];
int D[MVNum][MVNum],P[MVNum][MVNum];
//文件名CreateMGraph.c
void CreateMGraph(MGraph *G,int n,int e)
{//采用鄰接矩陣表示法構(gòu)造有向圖G,n,e表示圖的當(dāng)前頂點(diǎn)數(shù)和邊數(shù)
int i,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("輸入%d條邊的i、j及w:\n",e);
for(k=1;k<=e;k++)
{
scanf("%d,%d,%d,",&i,&j,&w);
G->arcs[i][j]=w;
}
printf("有向圖的存儲(chǔ)結(jié)構(gòu)建立完畢\n");
}
//文件dijkstra.c
void Dijkstra(MGraph *G ,int v1,int n)
{
int D2[MVNum],P2[MVNum];
int v,i,w,min;
enum boolean S[MVNum];
for(v=1;v<=n;v++)
{
S[v]=FALSE;
D2[v]=G->arcs[v1][v];
if(D2[v]<Maxint)
P2[v]=v1;
else
P2[v]=0;
}
D2[v1]=0;
S[v1]=TRUE;
for(i=2;i<n;i++)
{
min=Maxint;
for(w=1;w<=n;w++)
if(!S[w]&& D2[w]<min)
{
v=w;
min=D2[w];
}
S[v]=TRUE;
for(w=1;w<=n;w++)
if(!S[w] && (D2[v]+G->arcs[v][w]<D2[w]))
{
D2[w]=D2[v]+G->arcs[v][w];
P2[w]=v;
}
}
printf("路徑長度路徑\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");
}
}
//文件floyd.c
void Floyd(MGraph *G,int n)
{
int i,j,k,w;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(G->arcs[i][j]!=Maxint)
P[i][j]=j;
else
P[i][j]=0;
D[i][j]=G->arcs[i][j];
}
for(k=1;k<=n;k++)
{
for(i=1;i<=n;i++)
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];
P[i][j]=P[i][k];
}
}
}
}
void main()
{
MGraph *G;
int m,n,e,v,w,k;
int xz=1;
G=(MGraph *)malloc(sizeof(MGraph));
printf("輸入圖中頂點(diǎn)個(gè)數(shù)和邊數(shù)n,e:");
scanf("%d,%d",&n,&e);
CreateMGraph(G,n,e);
while(xz!=0)
{
printf("********求城市之間的最短路徑********\n");
printf("====================================\n");
printf("1.求一個(gè)城市到所有城市的最短路徑\n");
printf("2.求任意的兩個(gè)城市之間的最短路徑\n");
printf("====================================\n");
printf("請(qǐng)選擇: 1、或 2、選擇 0、退出:");
scanf("%d",&xz);
if(xz==2)
{
Floyd(G,n);
printf("輸入源點(diǎn)(或稱起點(diǎn))和終點(diǎn):v,w:");
scanf("%d,%d",&v,&w);
k=P[v][w];
if(k==0)
printf("頂點(diǎn)%d到%d無路徑!\n",v,w);
else
{
printf("從頂點(diǎn)%d到%d的最短路徑是:%d!\n",v,w,v);
while(k!=w)
{
printf("->%d",k);
k=P[k][w];
}
printf("->%d",w);
printf("路徑長度:%d\n",D[v][w]);
}
}
else
if(xz==1)
{
printf("求單源路徑,輸入源點(diǎn)v:");
^^^^^限于篇幅余下內(nèi)容下載附件^^^^^^
復(fù)制代碼
全部資料51hei下載地址:
程序.rar
(1.29 KB, 下載次數(shù): 11)
2019-5-21 23:35 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久视频在线
|
激情av在线
|
欧美性生交xxxxx久久久
|
婷婷激情综合网
|
干少妇视频
|
成人在线视频免费
|
亚洲理论片
|
激情av网站
|
日韩中文字幕第一页
|
欧美一级欧美三级在线观看
|
亚洲欧洲在线观看
|
毛片视频免费观看
|
十八岁毛片
|
午夜国产福利
|
欧美日韩综合
|
a级片在线免费观看
|
国产成人午夜高潮毛片
|
成人午夜在线
|
超碰在线免费播放
|
日韩精品久久久久久
|
中文字幕免费在线观看
|
日韩欧美在线一区
|
亚洲美女一区
|
91亚洲国产成人久久精品网站
|
日本天堂网
|
欧美在线日韩
|
中国a一片一级一片
|
日韩精品国产精品
|
欧美三根一起进三p
|
欧美一级淫片
|
黄色一级免费视频
|
天天射天天
|
日韩高清一区二区
|
美女黄色免费网站
|
超碰在线99
|
免费久久久
|
国产精品久久久一区二区
|
性生活视频网站
|
欧美毛片基地
|
欧美国产日韩视频
|
欧美区日韩区
|