bfs和dfs算法c模板
时间: 2023-10-14 12:06:56 浏览: 113
下面是BFS和DFS算法的C++模板:
BFS算法模板:
```cpp
#include <iostream>
#include <queue>
using namespace std;
void BFS(int start, int end) {
queue<int> q;
bool visited[n]; // 标记节点是否被访问过
int level[n]; // 记录节点的层级
// 初始化visited和level数组
for (int i = 0; i < n; i++) {
visited[i = false;
level[i = 0;
}
q.push(start);
visited[start = true;
while (!q.empty()) {
int current = q.front();
q.pop();
// 进行当前节点的操作
for (int neighbor : 获取当前节点的所有邻居节点) {
if (!visited = true;
level = level[current + 1;
}
}
}
// 输出结果,例如输出最短路径的长度
cout << "最短路径长度为:" << level[end << endl;
}
```
DFS算法模板:
```cpp
#include <iostream>
using namespace std;
void DFS(int current, bool visited[]) {
// 进行当前节点的操作
visited[current = true; // 标记当前节点已访问
for (int neighbor : 获取当前节点的所有邻居节点) {
if (!visited = false;
}
DFS(start, visited);
return 0;
}
```
这些模板可以用于解决各种问题,如迷宫、八皇后、n皇后、油田、连通块、数独等。在使用时,根据具体问题的要求选择适合的算法,并按照注释部分进行相应的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [DFS和BFS理解+模板+例题](https://blog.csdn.net/weixin_43876357/article/details/112552683)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文