应用图论作业汇编.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用图论作业汇编

第一题:自动生成图的邻接矩阵 算法:我们首先从键盘上获取图的定点数和边数;根据定点数生成矩阵,把矩阵的初始值全部赋予0;在通过从第一条边开始循环,看边与定点的相联的编号,由于如果与g[i][j]想连接赋值为1,同时把g[j][i]赋值也为1;其他的全部保持默认的值,这样我们就可以得到邻居矩阵。 #include stdio.h int main() { int i,j,t; int a,b; int g[50][50]={0,0}; printf(请输入图的定点数和边数: ); scanf(%d%d,a,b); for(i=1;i=a;i++) for(j=1;j=a;j++) g[i][j]=0; for(t=1;t=b;t++) { printf(请输入两个连接定点编号: ); scanf(%d %d,i,j); g[i][j]=1; g[j][i]=1; } for(i=1;i=a;i++) { for(j=1;j=a;j++) { printf(%3d,g[i][j]); } printf(\n); } return (0); } 第二题:生成关联矩阵 算法:通过键盘中输入的边的条数和点的个数,我们生成一个矩阵,初始值我们全部赋0。然后通过从提一条边开始循环,循环一条边时候,我们输入与边连接的两个顶点的序列,然后我们在对定点循环,如果输入的点的序列等于循环的点的序列就对这个坐标位置赋1,通过这两个for循环,我们就可以自动生成关联矩阵。 #includestdio.h int main() { int g[50][50]; int i,j,k,a,b; int m,n; printf(请输入边数和定点数:); scanf(%d%d,a,b); for(i=1;i=a;i++) { printf(请输入与%d边相联的连个定点,i); scanf(%d%d,m,n); for(j=1;j=b;j++) { if(j==m) g[i][j]=1; else if(j==n) g[i][j]=1; else g[i][j]=0; } } for(i=1;i=a;i++) { for(j=1;j=b;j++) printf(%4d,g[i][j]); printf(\n); } return 0; } 第三题;邻接矩阵转换成关联矩阵 算法:邻居矩阵我们按照第一题的思路一样生成,我们在定义一个矩阵l,我们对邻接矩阵的每个定点进行循环,从第一个定点i开始,如果检测到该定点与另个定点j连接,我们就对矩阵l赋值,l[f][j]赋值为1;同时由于对称性,我们同时对l[j][i]赋值为1;这样我们就完成了邻接矩阵到关联矩阵的自动转换。 #includestdio.h int main() { int i,j,k,a,b,m,n; int f=1; int g[50][50]; int l[50][50]={0}; printf(请输入定点数目和边数:); scanf(%d%d,a,b); for(i=1;i=a;i++) { for(j=1;j=a;j++) g[i][j]=0; } for(k=1;k=b;k++) { printf(请输入与%d边连接点的位置:,k); scanf(%d%d,m,n); g[m][n]=1; g[n][m]=1; } for(i=1;i=a;i++) { for(j=1;j=a;j++) { if(g[i][j]==1) { l[i][f]=l[f][i]=1; f++; } } } printf(输出邻接矩阵:); printf(\n); for(i=1;i=a;i++) { for(j=1;j=a;j++) printf(%4d,g[i][j]); printf(\n); } printf(\n); printf(输出关联举证:); printf(\n); for(i=1;i=b;i++) { for(j=1;j=a;j++) printf(%4d,l[i][j]); printf(\n); } return 0; } 第四题:判断是否为连通图: 算法:从键盘上获取a的邻接矩阵,然后我们通过m步转移的到转移矩

文档评论(0)

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

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

1亿VIP精品文档

相关文档