深搜和宽搜的c++实现
时间: 2024-02-18 15:04:32 浏览: 79
c语言实现的,基于深搜和广搜,有界面显示
4星 · 用户满意度95%
深度优先搜索(DFS)和广度优先搜索(BFS)是常用的搜索算法,在C++中可以用递归或栈实现DFS,用队列实现BFS。
以下是DFS的C++实现:
```c++
void dfs(int u) {
visited[u] = true;
// 对于u的每个邻居v
for (int v : adj[u]) {
if (!visited[v]) {
dfs(v);
}
}
}
```
以下是BFS的C++实现:
```c++
void bfs(int s) {
queue<int> q;
q.push(s);
visited[s] = true;
while (!q.empty()) {
int u = q.front();
q.pop();
// 对于u的每个邻居v
for (int v : adj[u]) {
if (!visited[v]) {
visited[v] = true;
q.push(v);
}
}
}
}
```
其中,`adj`是存储图的邻接表,`visited`是记录每个节点是否被访问过的数组。
阅读全文