邻接矩阵深度优先遍历代码
时间: 2024-07-01 21:00:56 浏览: 101
邻接矩阵存储图的深度优先遍历的代码实现
5星 · 资源好评率100%
邻接矩阵是一种用于表示图数据结构的方法,其中用一个二维数组来存储图中每对顶点之间的边。深度优先搜索(DFS)是一种用于遍历或查找图中所有节点的算法,它从起点开始,尽可能深地探索分支,直到遇到不可达节点或达到目标节点。
以下是使用邻接矩阵实现深度优先遍历的伪代码:
```cpp
// 假设 graph 是邻接矩阵,visited 是一个标记节点是否被访问过的数组
void dfs(int start, bool graph[N][N], bool visited[N]) {
// 标记当前节点为已访问
visited[start] = true;
// 遍历与当前节点相邻的所有节点
for (int i = 0; i < N; i++) {
if (graph[start][i] && !visited[i]) {
// 递归调用 dfs 函数
dfs(i, graph, visited);
}
}
}
// 初始化函数
void initializeDFS() {
// 具体设置初始节点和图的大小
int start = 0;
int N = sizeof(graph) / sizeof(graph[0]);
bool visited[N]; // 初始化所有节点为未访问
// 开始深度优先遍历
dfs(start, graph, visited);
}
```
在这个代码中,`dfs`函数首先将起始节点标记为已访问,然后检查其相邻节点(对应邻接矩阵中的值为1)。如果一个相邻节点未被访问,就递归调用自身,继续遍历。`initializeDFS`函数则用于初始化并启动整个过程。
阅读全文