DFS和BFS的模板代码
时间: 2023-05-27 11:01:40 浏览: 128
DFS模板代码:
```
void dfs(int cur) {
// 做出选择
// 如果满足条件,更新结果
// 遍历下一层节点
for (int next : next_nodes) {
// 如果下一层节点未被访问过
if (!visited[next]) {
visited[next] = true; // 标记为已访问
dfs(next); // 继续递归遍历下一层节点
visited[next] = false; // 回溯后撤销标记
}
}
}
```
BFS模板代码:
```
queue<int> q; // 定义队列
q.push(start); // 将起始节点加入队列
visited[start] = true; // 标记起始节点为已访问
while (!q.empty()) { // 队列非空,循环
int cur = q.front();
q.pop();
// 如果满足条件,更新结果
// 遍历下一层节点
for (int next : next_nodes) {
// 如果下一层节点未被访问过
if (!visited[next]) {
visited[next] = true; // 标记为已访问
q.push(next); // 将节点加入队列
}
}
}
```
阅读全文