有向图的邻接表存储强连通判断

有向图的邻接表存储强连通判断

Tags: 有向图
假设有向图G采用邻接表存储,设计一个算法,判断图G是否是强连通图。若是则返回yes;否则返回no。(图中顶点信息为整型数据。)

输入

第一行为图中顶点的个数n;
第二行为图的边的条数e;
接下来e行,每行是一条边依附的两个顶点信息。
输出
强连通图输出yes,否则输出no.

样例输入

5
7
0 1
1 2
1 3
2 3
3 0
3 4
4 0

样例输出

yes

详细代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct Node{
int data[50][50];
}Link;
int main()
{
Link l=(Link)malloc(sizeof(Link));
memset(l->data,0,sizeof(l->data));
int n,m;
scanf("%d",&n);
scanf("%d",&m);
int x,y;
while(m–)
{
scanf("%d %d",&x,&y);
l->data[x][y]=1;
}
int flag=1;
for(int i=0;i<n-1;i++)
{
if(l->data[i][i+1]0)
{
flag=0;
break;
}
}
if(flag
1&&l->data[n-1][0]==1)
{
printf(“yes”);
}
else
{
printf(“no”);
}
return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值