邻接表建立bfs,dfs的模板默写
作者:
沐枫w
,
2024-03-13 16:47:54
,
所有人可见
,
阅读 31
using namespace std;
const int N = 10010;
int h[N], e[N], ne[N], idx;
bool flag[N];
int add(int a,int b) {
e[idx] = b;
ne[idx] = h[a];
h[a] = idx++;
}
int dfs(int u)
{
flag[u] = true;
for (int i = h[u]; i != -1; i = ne[i])
{
int j = e[i];
if (!flag[j])
{
dfs(j);
}
}
}
int bfs(int st)
{
queue<int> Q;
Q.push(st);
flag[st] = true;
while (Q.size())
{
int fr = Q.front();
Q.pop();
for (int i = h[fr]; i != -1; i = ne[i])
{
int j = e[i];
if (!flag[j])
{
flag[j] = true;
Q.push(j);
}
}
}
}