无向图的连通性

本文探讨了如何判断无向图的连通性,通过DFS或BFS遍历图,计数联通点来确定。同时介绍了割点的概念,即移除该点会导致图的连通性变化。定理表明,一个点是割点当且仅当其存在子节点,该子节点及其后代无法通过其他路径返回源点。文中提供了基于DFS的割点查找算法,通过访问顺序和搜索深度判断割点,并给出了详细的实现思路。
摘要由CSDN通过智能技术生成

连通性的判断:

可以用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从一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值