知行社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1368|回复: 0
收起左侧

Warshall算法

[复制链接]
:-(相见易得好久 发表于 2011-10-23 22:39 | 显示全部楼层 |阅读模式
  1. #incluce"matrix.h"

  2. #include<iostream>

  3. using namespace std;

  4. //输入矩阵
  5. void getMat(int row,int col,int**p){
  6. cout<<"请输入矩阵:"<<endl;
  7. for(int i=0;i<row;i++)
  8.   for(int j=0;j<col;j++)
  9.   cin>>p[i][j];
  10. }

  11. //Warshall算法
  12. #include"warshall.h"
  13. #include"matrix.h"
  14. #include<iostream>
  15. using namespace std;
  16. void Warshall(int row,int col,int **p){
  17. for(int j=0;j<col;j++){
  18.   for(int i=0;i<row;i++){
  19.    if(p[i][j]==1){
  20.     for(int k=0;k<col;k++)
  21.     p[i][k]=(p[i][k])|(p[j][k]);
  22.    }
  23.   }
  24. }
  25. }
  26. void get_Tr(int row,int col,int**p){
  27. Warshall(row,col,p);
  28. cout<<"其t(R)为:"<<endl;
  29. for(int i=0;i<row;i++){
  30.   for(int j=0;j<col;j++)
  31.    cout<<p[i][j]<<'\t';
  32.   cout<<endl;
  33. }
  34. }
  35. //判断图是否连通
  36. void Connection(int row,int col,int **p){
  37. getMat(row,col,p);
  38. get_Tr(row,col,p);
  39. int sum=0;
  40. for(int i=0;i<row;i++)
  41.   for(int j=0;j<col;j++){
  42.    if(p[i][j]!=1)
  43.     sum++;
  44.   }
  45.   if(sum>0)
  46.   cout<<"该图不是连通图"<<endl;
  47.   else
  48.    cout<<"该图是连通的"<<endl;
  49. }

  50. int main(){

  51.     。。。。。。

  52.     Conection(row,col,p);

  53.     。。。。。。

  54. }
复制代码

QQ|小黑屋|手机版|知行技术社区 ( 湘ICP备11020288号-1 )

GMT+8, 2020-7-8 02:13 , Processed in 0.070498 second(s), 8 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表