利用Warshall_算法求二元关系的可传递闭包
代码 #include<iostream> #include<fstream> using namespace std; int n;int a[20][20]; int b[20][20]; int c[20][20]; void Warshall(); int main(){ //ifstream cin("1.txt"); for(;cin>>n;){ int i,j; for ( i=1;i<=n;i++) { cout<<"请输入矩阵第"<<i+1<<"行元素:"; for( j=1;j<=n;j++){ cin>>a[i][j]; b[i][j]=a[i][j]; } } cout<<"原矩阵邻接矩阵为:"<<endl; for(i=1;i<=n;i++){ for(int j=1;j<=n;j++) cout<<b[i][j]<<' '; cout<<endl; } for(int x=2;x<=n;x++){ if(x==n){ Warshall(); cout<<"原矩阵的可达矩阵为:"<<endl; for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ if(c[i][j]!=0)c[i][j]=1; cout<<c[i][j]<<' '; } cout<<endl; } } } } return 0; } void Warshall(){ for(int ii=1;ii<=n;ii++){ for(int jj=1;jj<=n;jj++){ c[ii][jj]=0; for(int kk=1;kk<=n;kk++) c[ii][jj] +=a[ii][kk]*b[kk][jj]; } } for(int iii=1;iii<=n;iii++){ for(int jjj=1;jjj<=n;jjj++) b[iii][jjj]=c[iii][jjj]; } }
- 章满莫2023-07-25作者在文件中给出了一些具体的实例,使得读者可以更好地理解算法的应用场景和解决方法。
- 田仲政2023-07-25这个文件很有深度,详细地介绍了如何利用Warshall算法解决二元关系的可传递闭包问题。
- 城北伯庸2023-07-25虽然文件内容较为专业,但是作者用简单明了的语言写就,让非专业人士也能够通过阅读理解并应用其中的知识。
- woo静2023-07-25对于初学者来说,这个文件的解释非常清晰易懂,让人能够迅速上手并理解算法的实现步骤。
- 代码深渊漫步者2023-07-25文件中的示例代码很实用,可以直接拿来使用并解决实际问题,节省了编程者的时间和精力。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助