代码量:380
题目介绍:
知识点:图,三维数组等数据结构。采用迪杰斯特拉算法求最短路径、最短时间
部分源码及效果展示
我们可以加入中间点来查询路径的最快时间和最短路径
void show4(int i,int j, int temp) { int k=0,a=i,b=j; int S; double L; int h,m,s; printf("\n请输入起始时间(hh:mm:ss):"); scanf("%d:%d:%d",&h,&m,&s); if(shortest[i][j][temp]!=Maxedge) { if(temp == 0) printf("从%s到%s的最短路径为:\n",ver[i].name,ver[j].name); if(temp == 1) printf("从%s到%s的最快时间的路径为:\n",ver[i].name,ver[j].name); printf("%s",ver[i].name); while(path[i][j][temp]!=0) { k=path[i][j][temp]; while(path[i][k][temp]!=0) { k=path[i][k][temp]; } printf("----%s",ver[k].name); i=k; } printf("----%s;\n",ver[j].name ); if(temp == 0) { printf("最短距离为:%d米。\n",shortest[a][b][temp]); S = shortest[a][b][temp] / 1;//(人每秒1米) time(h, m, s, S); } if(temp == 1) { printf("最快时间为:%d秒。\n",shortest[a][b][temp]); time(h, m, s, shortest[a][b][temp]); } } else printf("从%s不能到达%s。",ver[i].name ,ver[j].name ); }
你可以选择任意一个联系,不用重复添加
联系方式1:QQ207732272
联系方式2:QQ1436834022
联系方式3:QQ149478984