深度优先遍历,又名深度优先搜索,是一种搜索方法,它的目的是要达到被搜索结构的顶点。我们今天一起来看对图的深度优先遍历。
-----------------------------------------------普普通通的分割线----------------------------------------------------------
一、如何进行操作?
(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) re