大数据结构-医院选址问的题目.docVIP

  • 11
  • 0
  • 约4.77千字
  • 约 14页
  • 2019-01-15 发布于安徽
  • 举报
实用标准文案 精彩文档 课程设计报告书 课程名称 数据结构 设计题目 社区医院选址问题 专业班级 *************************** 学 号 **** 姓 名 *** 指导教师 **** 计算机科学与技术专业教研室 1 设计目的:数据结构是计算机科学与技术、信息管理专业的重要的专业基础课,是计算机系统软件和应用软件开发的重要理论和技术。本次课程设计内容主要用到图的结构。所以课程设计目要求掌握图的理论、图的邻接矩阵存储方式、顶点对这间的最短路径算法设计、及图在实践中的简单应用。 2设计任务:已知有向图,图中各顶点代表居民区,有向边代表交通路线。权表示路程(公里) 。要在居民区建立一家医院。要求各居民区到医院的路径尽可能短,请设计医院建在哪个居民区比较合适。 0341 4 0 3 4 1 4 3 13 13 12 12 6 2 5 2 15 3 设计内容:图中各顶点代表居民区,边上的权代表各居民区的路程。要解决选地址问题,必须确定最短路径。求各顶点到其它顶点的最短路径,并求各居民区之间往返路径的和。对各居民区的最短路径和进行比较,和最小的则为首选地址。问题的实现,采用顶点对之间最短路径算法,对各居民区的最短路径进行计算。 1:求出邻接矩阵 2:求出邻接表 3:求出最短路径的邻接矩阵 4:求各顶点到其它顶点的最短路径的和 5:求出其它顶点到各顶点的最短路径的和 6:求出往返最短路径的和 7:对各居民区的最短路径和进行比较,和最小的则为首选地址。 4 结果分析: 这步是输入数据 输出邻接矩阵 for(i=0;in;i++) { for(int j=0;jn;j++) { coutt.arcs[i][j] ; } coutendl; } coutendl; 输出邻接表 for(i=0;in;i++) { for(j=0;jn;j++) { if(i!=j) { int next=t.path[i][j]; coutj; cout--i t.a[i][j] ; } } coutendl; } 输出最短路径的邻接矩阵 for(i=0;in;i++) { for(j=0;jn;j++) { coutt.a[i][j] ; } coutendl; } 输出点到所有点的路程的和 for(i=0;in;i++) { sum1[i]=0; for(int j=0;jn;j++) { if(i!=j) { coutt.a[i][j]:; int next=t.path[i][j]; coutj; while(next !=i) { cout--next; next=t.path[i][next]; } cout--iendl; sum1[i]+=t.a[i][j]; } } cout点i到所有点的路程和为:sum1[i]endl; } 逆输出所有点到点路径的和 for(i=0;in;i++) { sum2[i]=0; for(j=0;jn;j++) { if(i!=j) { coutt.a[j][i]:; int next=t.path[j][i]; couti; while(next !=j) { cout--next; next=t.path[j][next]; } cout--jendl; } sum2[i]+=t.a[j][i]; } cout所有的点到i路程和为:sum2[i]endl; } 输出所有点往返路程的和 for(int o=0;on;o++) { sum3[o]=sum1[o]+sum2[o]; cout点o的往返路程的和为:sum3[o]endl; } min=sum3[0]; for(int h=0;hn;h++) { if(sum3[h]=min) { min=sum3[h]; l=h; } } cout比较可得最短的路程为m

文档评论(0)

1亿VIP精品文档

相关文档