假设有向图G采用邻接矩阵存储,设计一个算法,判断图G是否是强连通图。若是则返回yes;否则返回no。
第一行为一个整数表示顶点的个数。接下来是为一个整数矩阵,表示图的邻接关系。
yes(强连通图)或no(非强连通图).。
5
0 1 0 0 0
0 0 1 1 0
0 0 0 1 0
1 0 0 0 1
1 0 0 0 0
-----------------
yes
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int maps[105][105],n,vis[1005]={0};
int main()
{
int i,j;
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>maps[i][j];
}
}
int flag=0;
for(i=0;i<n-1;i++)
{
if(maps[i][i+1]!=1)
{
flag=1;
break;
}
}
if(flag==1 || maps[n-1][0]!=1) cout<<"no";
else cout<<"yes";
return 0;
}
本文介绍了一种基于邻接矩阵存储的有向图判断其是否为强连通图的算法实现。通过检查每个节点到相邻节点的连接情况来确定整个图是否满足强连通条件。
1800

被折叠的 条评论
为什么被折叠?



