在图的遍历中,为了防止同一顶点被多次访问,设一个辅助数组visited[n],其初始值置为flase或0,一旦访问了顶点Vi,便置visited[i]为true或1。
1、深度优先搜索
(1)、深度优先搜索遍历的过程
深度优先搜索(DFS)遍历类似与树的先序遍历。
对于一个连通图,深度优先搜索遍历过程如下
①从图中某个顶点v出发,访问v。
②找出v的第一个未被访问的邻接点,访问该顶点。并以该顶点为新顶点,重复此步骤,直至刚访问过的顶点没有未被访问的邻接点为止。
③返回前一个访问过的且有未被访问的邻接点的顶点,找出该顶点的下一个未被访问的邻接点,访问该顶点。
④重复步骤直至图中所有顶点都被访问过。
深度优先生成树。
(2)、深度优先搜索遍历的算法实现
显然,深度优先搜索遍历连通图是一个递归过程
深度优先搜索遍历连通图
bool visited[MVNum];
void DFS(Graph G,int v)
{
int v,w;
cout<<v;visited[v]=true;
for(w=FirstAdjVex