无向图的连通性

连通性的判断:

可以用dfs遍历整个图,用一个count计数联通点的数量,如果count等于n,那么整个图就是连通的,那么就是我们要找的就是用什么方法,可以用dfs或者bfs,大体思路就是从一个点开始找,先判断是否遍历过,没有就找到它的关系点,再从关系点dp,遍历后将count加一,向下访问,如果连通就会遍历到所有点即count=n

int count = 0;
void dfs(Map G, int i)
{
    int j = 0;
    visited[i] = 1;
    count++;
    for(j=0; j<G.num; j++)
    {
        if(G.map[i][j]==1 && !visited[j])//i和j有关系相邻,并且j顶点没有被访问过
        {
            dfs(G, j);
        }
    }
}

 

寻找割点/割边:

割点:定义就是如果把这个点从图中去掉,图的连通性被改变,这样的点就叫做割点                                                                      

定理:1.如果一个点是割点,那么它存在一个子节点V,V和V的后代点都没有其他路回到割点的源点。                                                     2. 根节点如果有两个以上的子树,那么它就是一个割点

思路:

选择dfs从一个

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值