数据结构课设报告(4)

2019-08-30 23:29

G.arcs[22][23].adj=G.arcs[23][22].adj=500; G.arcs[23][24].adj=G.arcs[24][23].adj=3700; G.arcs[23][29].adj=G.arcs[29][23].adj=3300; G.arcs[24][25].adj=G.arcs[25][24].adj=3300; G.arcs[24][29].adj=G.arcs[29][24].adj=2000; G.arcs[26][27].adj=G.arcs[27][26].adj=350; G.arcs[27][28].adj=G.arcs[28][27].adj=1200; G.arcs[27][30].adj=G.arcs[30][27].adj=1100; G.arcs[27][31].adj=G.arcs[31][27].adj=1700; G.arcs[31][32].adj=G.arcs[32][31].adj=1800; G.arcs[33][34].adj=G.arcs[34][33].adj=1050; G.arcs[34][35].adj=G.arcs[35][34].adj=1000; G.arcs[36][37].adj=G.arcs[37][36].adj=2600; G.arcs[37][38].adj=G.arcs[38][37].adj=3900; G.arcs[38][39].adj=G.arcs[39][38].adj=4100; G.arcs[40][41].adj=G.arcs[41][40].adj=4000; G.arcs[41][42].adj=G.arcs[42][41].adj=2100; G.arcs[42][43].adj=G.arcs[43][42].adj=4000; }

void narrate() {

int i,k=0;

printf(\※※※※※※※※※欢迎使用最优旅游交通路径程序!※※※※※※※※※\\n\\n\

printf(\该程序由中南大学电子信息专业1002班的两位同学制作\\n\

printf(\公交站点列表如下:\\n\\n\ for(i=0;i

printf(\【-】%-10s\.vex[i].site); //输出站点列表 k=k+1; if(k%4==0) printf(\ } }

//暂时先定义一个最短路径函数 void shortestpath(int num) { int v,w,i,t; int final[Len]; int min;

for(v=0;v

15

final[v]=0 ;

D[v]=G.arcs[num][v].adj ;

for(w=0;w

P[v][num]=1 ; P[v][v]=1 ; } }

D[num]=0 ; final[num]=1 ; for(i=0;i

min=N ;

for(w=0;w

v=w ;

min=D[w]; }

final[v]=1 ;

for(w=0;w

if(!final[w]&&((min+G.arcs[v][w].adj)

D[w]=min+G.arcs[v][w].adj ;

for(t=0;t

P[w][w]=1 ; } } }

//输出最短路径的路线 void output(int site1,int site2) {

int a,b,c,d,q=0,max,i=0; int m=0;

int f[25]; 记录经过的站点

int t[25][8]; 记录相邻两站之间的相同的公交线 for(c=0;c<25;++c)

f[c]=50; 有为50的站点,故用其初始化

16

//f[]//t[][] //没 for(c=0;c<25;++c) for(b=0;b<8;++b)

t[c][b]=0; //初始化为 0 a=site2 ; if(a!=site1) {

printf(\从【%s】到【%s】的最短路径是:\\n\\n\.vex[site1].site,G.vex[site2].site); printf(\.vex[site1].site); d=site1 ;

for(c=0;c

P[a][site1]=0 ;

for(b=0;b

if(G.arcs[d][b].adj

printf(\.vex[b].site); f[q]=b; q=q+1 ; P[a][b]=0 ; d=b ;

if(q%8==0)printf(\ goto gate; } } }

max=q; //此段代码是负责根据最短路径提出乘车方案 if(f[1]==50) { for(c=0;c<8;++c) { if(G.vex[site1].route[c]!=0) { for(b=0;b<8;++b) { if(G.vex[site1].route[c]==G.vex[f[0]].route[b]) {t[0][i]=G.vex[site1].route[c]; i++;} }

17

//由于迪杰斯 } }

printf(\你可以乘坐: \ for(i=0;i<8;++i) { if(t[0][i]!=0) { if(i>0) printf(\或 \ printf(\路 \ } } printf(\即可到达目的站\ } else { i=0; for(c=0;c<8;++c) { for(b=0;b<8;++b) { if(G.vex[site1].route[c]==G.vex[f[0]].route[b]) {t[0][i]=G.vex[f[0]].route[b]; i++;} } }

for(q=0;q

if(t[q+1][0]==0) 果f[q+1]跟前面没有相同路线 {

18

//如 m=m+1;

if(m==1) printf(\您可以乘坐: \ for(c=0;c<8;++c) { if(t[q][c]>0&&c>0) printf(\或 \ if(t[q][c]>0) printf(\路\ }

printf(\到%s下\.vex[f[q]].site); printf(\ 再搭乘 \ for(c=0;c<8;++c) {

for(b=0;b<8;++b) {

if(G.vex[f[q]].route[c]==G.vex[f[q+1]].route[b]) {t[q+1][i]=G.vex[f[q+1]].route[b]; i++;} } } } if((q+1)==(max-1)) if(m!=0) //考虑f[q+1]运行到最后一站的情况 { for(c=0;c<8;++c) { if(t[q+1][c]>0&&c>0) printf(\或 \ if(t[q+1][c]>0) printf(\路\ } printf(\即可到达目的站\\n\ } }

if(m==0) {printf(\您可以直接坐:\ for(c=0;c<8;++c) {if(t[max-1][c]>0&&c>0) printf(\或 \ if(t[max-1][c]>0) printf(\路\ printf(\即可到达您的目的站\ } }

printf(\ (最短距离为 %dm.)\\n\\t\} }

19


数据结构课设报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:昆明市乡村城镇化建设的几点思考 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: