递归代码如下
bool visited[MaxSize];
void visit(int v); //泛指对v操作的函数,未初始化
void DFS(Graph G, int v)
{
visit(v);//访问点v
visited[v] = true;//标记v点已经访问
for (int w = FirstNeighbor(G, v); w >= 0; w = NextNeighbor(G, v, w))
//w为v的每一个邻接点
if (!visited[w])
DFS(G, w);
}
void DFSTraverse(Graph G)
{
for (int i = 0; i < G.vexnum; ++i)
visited[i] = false;
for (int v = 0; v < G.vexnum; ++v)
if (!visited[v])
//每个连通分量只调用一次
DFS(G, v);
//等一个?
}
//清风拂面,路随我走~