树与图的深度优先遍历
存储方式:
- 邻接矩阵(一个二维数组)=> g[ a ] [ b ] = k; => a -->b 的权重为k。相反g[ b ] [ a ] = k; => b -->a 的权重为k。
- 邻接表
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10 , M = 2 * N;
int h[N],e[M],ne[M],idx;
int n;
void add(int a,int b)
{
e[idx] = b;
ne[idx] = h[a];
h[a] = idx ++;
}
int dfs(int u)
{
for(int i = h[u] ; i != -1 ; i = ne[i])
{
int j = e[i];
if(!b[j]) dfs(j);
}
}
例:acwing-846-树的重心
[题目链接](846. 树的重心 - AcWing题库)