图的遍历与树的遍历类似,即从图中某一个顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程就叫做图的遍历。
深度优先遍历,也称之为深度优先搜索,简称dfs。 深度优先遍历其实就是一个递归的过程,其详细过程可以表述为:从图中某个顶点v出发,访问此顶点,然后从v的未被访问的邻接点深度优先遍历图,直至图中所有和v有路径相通的顶点都被访问到。(注:此处用文字表述不太容易说清,对于不谙递归奥秘的初学者来说可能有些难以理解。若想更深入地了解递归,可以在脑中模拟下放地代码,或参考原著《大话数据结构》。)
以下直接放出代码:本代码中涵盖了邻接矩阵的建立
#include <iostream>
#include <cstring>
#include <cstdio>
#define MAXVEX 105
#define INFINITY 65535
using namespace std;
typedef char VertexType;//顶点类型
typedef int EdgeType;//边的类型
typedef struct{
VertexType vexs[MAXVEX]; //存储顶点的数组
EdgeType arc[MAXVEX][MAXVEX]; //存储边信息的数组
int numVertexes,numEdges; //顶点数与边数
}MGraph;
void CreateMGraph(MGraph