统计图的连通分支数

题目链接

法1° DFS+邻接表

#include
#include 
using namespace std;
const int MAXV=1000010;//最大顶点数 

vectorAdj[MAXV];//邻接表 
int n;//顶点数 
bool vis[MAXV];//如果顶点i已被访问,则vis[i]==true 

bool Hash[MAXV];//增加一个Hash来判断该图包含哪些点

void DFS(int u,int depth){//u为当前访问的顶点标号,depth为深度 
	vis[u]=true;//设置u已被访问 
	for(int i=0;in) n=x;
		if(y>n) n=y;
		Adj[x].push_back(y);
		Adj[y].push_back(x);
		Hash[x]=Hash[y]=true;
	}
	DFSTrave();
	return 0;
}

注:DFS可以不用加depth这个参数。

 

你可能感兴趣的:(图,算法笔记)