深度优先遍历,又名深度优先搜索,是一种搜索方法,它的目的是要达到被搜索结构的顶点。我们今天一起来看对图的深度优先遍历。
-----------------------------------------------普普通通的分割线----------------------------------------------------------
一、如何进行操作?
(1)从图(graph)的某一个顶点出发访问,被访问的定点做相应标记,输出顶点。
(2)从被访问的顶点出发,搜索与该点相连且没有北方问过的点。
(3)重复(2),直到所有店都被访问过。
二、伪代码示例:
void dfs(int n//参数){
//处理操作(比如输出)
if(//目标状态){
//输出处理
return ;
}
for(int i = 1 ; i<=//拓展可能数 ; i++){
if(//可以拓展){
//拓展
}
}
}
提示:
1.用邻接表存图
2.用布尔类型数组vis来存储是否访问过
三、代码示例:
//无向图的DFS
#include<bits/stdc++.h>
using namespace std;
int vis[105],n,mp[105][105];
void dfs(int x){
if(x>n) return ;
for(int i = 1 ; i<=n ; i++){
if(mp[x][i] == 0) continue;
if(vis[i] == 1) continue;
vis[i] = 1;
cout<<i<<" ";
dfs(i);
}
}
int main(){
/

本文介绍了图的深度优先遍历(DFS)算法,包括操作步骤、伪代码展示和C++代码实现。通过邻接表存储图,并使用布尔数组记录顶点的访问状态,实现递归遍历所有未访问过的顶点。
最低0.47元/天 解锁文章
8195

被折叠的 条评论
为什么被折叠?



