7678-树tree


本文总阅读量

根据树的定义,判断一个连通图是不是树有两种方法:

void dfs(int x, int fa)
{
    vis[x] = 1;
    for(auto y : G[x]){
        if(y!=fa){
            if(vis[y]) {
               tag = 1;   //遇到了环,那么不是树
               return;
            }
            dfs(y,x);
        }
    }
}
 

方法2:
遇到访问过的节点或返回值为1,则表示不是树。(1不是树,0为树)

bool dfs(int x, int fa)
{
    vis[x] = 1;
    for(auto y : G[x]){
        if(y!=fa){
            if(vis[y] || dfs(y,x)) return 1;
        }
    }
    return 0;  //没有中途返回,那说明是棵树
}
  

本站总访问量