邻接矩阵存储法和Floyd算法求解任意两个顶点的最短路径数据结构报告.docx

邻接矩阵存储法和Floyd算法求解任意两个顶点的最短路径数据结构报告.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数 据 结 构上 机 报 告(2)姓名:张可心 学号:14030188030 班级:1403018题目描述一个图的存储矩阵如下所示(顶点分别是0、1、2、3、4、5):0, 12, 18, ∞, 17, ∞12, 0, 10, 3, ∞, 518,10, 0, ∞, 21, 11∞, 3, ∞, 0, ∞, 817, ∞, 21, ∞, 0, 16∞, 5, 11, 8, 16, 0试用邻接矩阵存储法和Floyd算法求解任意两个顶点的最短路径。输入:输入数据第一行为1个正整:顶点个数n(顶点将分别按0,1,…,n-1进行编号)。后面有n+1行,前n行都有n个整数(第i行第j个数表示顶点i-1和顶点j-1之间的边长,用10000来表示两个顶点之间无边);第n+1行输入一对顶点x和y输出:x和y顶点的最短路径长度和最短路径(路径换行输出,只输出顶点编号序列)。示例输入(1):60 12 18 10000 17 1000012 0 10 3 10000 518 10 0 10000 21 1110000 3 10000 0 10000 817 10000 21 10000 0 1610000 5 11 8 16 00 1示例输出(1):1201示例输入(2):60 12 18 10000 17 1000012 0 10 3 10000 518 10 0 10000 21 1110000 3 10000 0 10000 817 10000 21 10000 0 1610000 5 11 8 16 02 3示例输出(2):13213示例输入(3):60 12 18 10000 17 1000012 0 10 3 10000 518 10 0 10000 21 1110000 3 10000 0 10000 817 10000 21 10000 0 1610000 5 11 8 16 01 4示例输出(3):21154示例输入(in和out文件的内容):60 12 18 10000 17 1000012 0 10 3 10000 518 10 0 10000 21 1110000 3 10000 0 10000 817 10000 21 10000 0 1610000 5 11 8 16 03 4示例输出:24354解题思路先用邻接矩阵存储法构建矩阵输入,分别输入顶点数,路径长度矩阵,邻接矩阵,再通过Floyd算法求解任意两个顶点的最短路径,具体代码如下。源代码#includestdio.h#includestdlib.hint main(){int n,i,j,k,a,b,next;printf(请输入顶点数:\n);scanf(%d,n);int G[n][n];//输入邻接矩阵 int D[n][n];//路径长度矩阵 int P[n][n];//路径矩阵 指向头结点的后继(路径如果是abc,则P[a][c]=b P[b][c]=c) printf(请输入邻接矩阵:\n);for(i=0;in;i++){for(j=0;jn;j++){scanf(%d,G[i][j]);D[i][j]=G[i][j];P[i][j]=j;}}for(k=0;kn;k++){for(i=0;in;i++){for(j=0;jn;j++){if(D[i][j]D[i][k]+D[k][j]){D[i][j]=D[i][k]+D[k][j];P[i][j]=P[i][k];}}}}scanf(%d %d,a,b);if(D[a][b]==10000)printf(a和b之间无路径\n);else{printf(%d\n,D[a][b]);printf(%d,a);for(next=a;next!=b;){next=P[next][b];printf(%d,next);}}system(pause);return 0;}运行结果

您可能关注的文档

文档评论(0)

gangshou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档