求连通分量
2015-08-23 16:22
218 查看
没什么说的,仍然用一般的存储方式就好,框架:
void find(){
count=0;
memset(vis,0,sizeof(vis));
for(int i=0;i<n;i++)
if(!vis[i]){
count++;
dfs(i);
}
}
void dfs(int x){
vis[x]=1;
int d=f[x].size();
for(int i=0;i<d;i++){
int v=f[x][i];
if(!vis[v]) dfs(v)
}
}
void find(){
count=0;
memset(vis,0,sizeof(vis));
for(int i=0;i<n;i++)
if(!vis[i]){
count++;
dfs(i);
}
}
void dfs(int x){
vis[x]=1;
int d=f[x].size();
for(int i=0;i<d;i++){
int v=f[x][i];
if(!vis[v]) dfs(v)
}
}
相关文章推荐
- gitosis clone项目时需要密码,全路径 解决办法
- Hibernate最小初始化 minimal constructor
- c++实现数据结构1.顺序表
- Qt android 调试与发布的一些东西
- Android横竖屏切换小结
- Swift学习笔记——枚举
- Java初级培训笔记------IO流(1)
- HDU 4324 Triangle LOVE 拓扑排序
- [ 转载 ] kernel32.BaseThreadInitThunk
- Contains Duplicate III
- Sql 表查询 1-5
- Mongoose 一些查询方法
- overfitting(过度拟合)的概念
- js笔试题
- NSAttributedString
- Sql 表查询 1-5
- L脚本语言的数组
- JAVA 集合的使用
- [思路题] cf 571A Lengthening Sticks
- 再识Cortex-M3之概述