用C++实现warshall的算法

来源:互联网 发布:淘宝怎么找人刷销量 编辑:程序博客网 时间:2024/05/21 19:40
#include<iostream.h>
void warshall(char *[],int size);//声明一个函数
void main()//主函数
{
 int size=0;
 cout<<"Input number of dimensions:";
 cin>>size;//输入矩阵的大小
 cout<<"Input elements:";
 char**args=new char*[size];//定义个二维字符串数组
 char c;
 for(int l=0;l<size;l++)
 {
  cout<<"Input the element of "<<l+1<<" row:"<<endl;
  args[l]=new char[size];/
  for(int j=0;j<size;j++)//输入矩阵的元素
  {
   cin>>c;
   args[l][j]=c;
  }
 }
 warshall(args,size);//调用这个函数
}
void warshall(char *args[],int size)//warshall算法的实现
{
 for(int i=0;i<size;i++)
 {
  for(int j=0;j<size;j++)
  {
   if(args[j][i]=='1')//找每列为1的元素
   {   
    for(int k=0;k<size;k++)
    {
    if(args[i][k]=='1'||args[j][k]=='1')//算法
        args[j][k]='1';   
     
    }
   }
  }
 }
 cout<<"after caculator with warshall :"<<endl;
 for(int l=0;l<size;l++)//打印矩阵
 {
  for(int j=0;j<size;j++)
  {cout<<args[l][j]<<'/t';}
  cout<<endl;
 }
 
}
 
原创粉丝点击