图的遍历
Depth_First_Search
过程
从某个顶点v1出发,然后找到并访问与v1的邻接点(且从未访问过)v2,再从v2出发访问与v2相邻的顶点。–>这就是递归思想
直到所有的顶点被访问到。
- 因为要记录该点是否被访问过,所以需要一个数组
bool visited[MAXVEX];

邻接矩阵遍历
1 | void DFS(MGraph G, int i) |
邻接表遍历
1 | void DFS(GraphAdjList *G, int i) |
时间复杂度
- 对比邻接矩阵和邻接表的遍历过程,可容易得出
假如n个顶点,e条边
- 邻接矩阵:$O(n^2)$
- 邻接表:$O(n + e)$
- 所以,对于多顶点少边的这种情况,邻接表不但节省了空间,还提高了函数的运行效率
