dfs是以深度为第一关键词
每次都沿着路径到不能再前进时
才退回到最近的岔道口
沿着一条路径直到无法继续前进
才退回到路径上里当前顶点最近的&还存在未访问的岔道口
并前往访问那些未访问的分支顶点
直到遍历完这个图
dfs的具体实现
2个概念:
1)连通分量:
2个顶点联通:2个顶点之间可以互相到达(无向图中)
====》
联通图:图G(V,E)的任意2个顶点都联通(无向图)
连通图的连通分量一个,
但是非联通图的联通分量有多个
连通分量:极大的联通子图
link
求图的连通分量的目的,
是为了确定从图中的一个顶点是否能到达图中的另一个顶点,
也就是说, 图中任意两个顶点之间是否有路径可达。
对于连通图,
从图中任一顶点出发遍历图,
可以访问到图的所有顶点,
即连通图中任意两顶点间都是有路径可达的。
2)强连通分量:
2个顶点强连通:2个顶点可以各自通过一条有向路径到达另一个顶点(有向图)
构成一个单向循环
强连通图:图G(V,E)的任意2个顶点都强连通(有向图)
强连通分量:极大强连通子图
我们把联通分量和强连通分量都叫做:连通块