for(i=0;i if(g.edges[v][i] path[i]=v; else path[i]=-1; } s[v]=1;path[v]=0; for(i=0;i mindis=INF; for(j=0;j u=j; mindis=dist[j]; } s[u]=1; for(j=0;j } } Dispath(dist,path,s,g.n,v); } void Ppath2(int path[][MAXV],int i,int j) 16 { int k; k=path[i][j]; if(k==-1)return; Ppath2(path,i,k); printf(\ Ppath2(path,k,j); } void Dispath2(int A[][MAXV],int path[][MAXV],int n) { int i,j; printf(\请输入起点和终点(i,j):\ scanf(\ if(A[i][j]==INF) { if(i!=j) printf(\从%d到%d没有路径\\n\ } else { printf(\从%d到%d路径为:\ printf(\ Ppath2(path,i,j); printf(\ printf(\路径长度为:%d\\n\ } } void Floyd(MGraph g) { int path[MAXV][MAXV],A[MAXV][MAXV]; int i,j,k; for(i=0;i 17 for(j=0;j for(k=0;k if(A[i][j]>A[i][k]+A[k][j]) { A[i][j]=A[i][k]+A[k][j]; path[i][j]=k; } } Dispath2(A,path,g.n); } void main() { int i,j,z,x; MGraph g; int A[][MAXV]={{INF,5,INF,7,INF,INF},{INF,INF,4,INF,INF,INF}, {8,INF,INF,INF,INF,9},{INF,INF,5,INF,INF,6},{INF,INF,INF,5,INF,INF}, {3,INF,INF,INF,1,INF}}; g.n=6;g.e=10; for(i=0;i for(j=0;j g.edges[i][j]=A[i][j]; 交 通 咨 询 系 统 printf(\ **********************\\n\ printf(\1-查看系统中的城市代号 **********\\n\ printf(\2-一个城市到所有城市的最短路径 **********\\n\ 18 printf(\3-任意的两个城市之间的最短路径 **********\\n\ printf(\**********\\n\ printf(\ printf(\请选择:\ 0-退 出 while(z!=0) { switch(z) { case 1: printf(\——北京,1——天津,2——上海,3——广州,4——南 京,5——厦门\\n\ printf(\ main(); scanf(\ break; case 2: printf(\请输入城市代号:\ scanf(\ switch(x) { case 0: printf(\以下是最短路径:\\n\ case 1: printf(\以下是最短路径:\\n\ case 2: printf(\以下是最短路径:\\n\ case 3: printf(\以下是最短路径:\\n\ case 4: 19 printf(\以下是最短路径:\\n\ case 5: printf(\以下是最短路径:\\n\ default : printf(\输入有误,请重新输入\\n\ printf(\ main(); } printf(\ } main(); scanf(\ case 3: Floyd(g); printf(\请选择:\printf(\main(); scanf(\ case 0: } exit(-1);break; default: printf(\输入有误,请重新输入\\n\ printf(\ main(); } 7.2参考文献 《数据库教程(第三版)》 李春葆 尹为民 李蓉蓉 蒋晶珏 喻丹丹 编著 [M]清华大学出版社 《数据库教程上机实验指导(第三版)》 李春葆 尹为民 李蓉蓉 蒋晶珏 喻丹丹 编著[M]清华大学出版社 20 8. 评分表 计算机与通信学院课程设计评分表 课程名称: 数据结构 项 目 评 价 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩 教师签名: 日 期: 21