深度优先搜索DFS

实际遇到的问题,数据量可能不会太大,都可以暴力搜索一把来解决。

 不撞南墙不回头,一条路走到黑!——DFS  

DFS深度优先搜索的应用:

  • 图的遍历
  • 求方案数

图的存储:   

 

使用二维数组a[n+1][n+1]来存储邻接矩阵; 

a[i][j]=0即表示i与j顶点不存在边相连接;a[i][j]=1即表示i与j顶点存在边。

  •  邻接矩阵

深度优先搜索DFS

  • 邻接表表示法

数组嵌套vector来表示邻接表,vector a[n+1] 。

a[i]是一个变长数组,里面存着与i顶点相连接的相邻顶点的编号。

 

 深度优先搜索DFS

visited[i]的布尔数组:表示i是否访问过。 

DFS使用邻接矩阵存储图的伪代码:

深度优先搜索DFS

 DFS使用邻接表存储图的伪代码:

深度优先搜索DFS