定义:
基本框架
int dfs(int u) // 保证进入dfs为有效且未访问状态,在进入dfs之后标记 { st[u] = true; // 标记 for (int i = h[u]; i != -1; i = ne[i]) { int j = e[i]; if (!st[j]) dfs(j); // 如果是无效状态或访问过,不进入 } }
基础框架
queue<int> q; st[1] = true; // 表示1号点已经被遍历过 q.push(1); while (q.size()) { int t = q.front(); q.pop(); for (int i = h[t]; i != -1; i = ne[i]) { int j = e[i]; if (!st[j]) { st[j] = true; // 表示点j已经被遍历过,保证压入的都被标记了 q.push(j); } } }