用C++写
时间: 2023-08-17 12:05:13 浏览: 69
自己用C++写的一个多功能简易录屏软件(附源码)
5星 · 资源好评率100%
以下是使用C++实现的深度优先遍历图的示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 定义图的邻接矩阵表示
vector<vector<int>> graph = {{0, 1, 1, 0, 0},
{1, 0, 0, 1, 1},
{1, 0, 0, 1, 0},
{0, 1, 1, 0, 1},
{0, 1, 0, 1, 0}};
// 定义访问数组
vector<bool> visited(graph.size(), false);
// 深度优先遍历函数
void dfs(int v) {
// 标记当前节点已访问
visited[v] = true;
cout << v << " ";
// 递归访问所有未访问过的邻接节点
for (int i = 0; i < graph[v].size(); i++) {
if (graph[v][i] == 1 && !visited[i]) {
dfs(i);
}
}
}
int main() {
// 从节点0开始深度优先遍历
dfs(0);
return 0;
}
```
这段代码中,我们使用vector容器来表示图的邻接矩阵,然后定义一个访问数组,用来记录每个节点是否已访问过。在深度优先遍历函数中,我们首先标记当前节点已访问,并输出节点编号。然后递归访问所有未访问过的邻接节点,直到所有节点都被访问过为止。最后,我们从节点0开始遍历整个图。
阅读全文