图论基础-深度优先遍历DFS

基本思想:访问顶点v0,然后访问v0邻接的未访问过的顶点v1,再从v1出发递归的按照深度优先的方式遍历。当遇到一个所有邻接于它的顶点都被访问过的顶点u时,则回到顶点序列中最后一个拥有未被访问过的相邻节点的顶点W,从W继续出发。最终当任何已被访问过的节点都没有未被访问的节点时,遍历结束。

bool visited[maxn]={0};
void DFS(int x)
{
     visited[x]=true;
     printf("%d\n",x);
     int i;
     for(i=head[x];i!=-1;i=edge[i].next)
     {
           if(!visited[i].to)
           {
                    DFS(edge[i].to);
           }
     }
}


你可能感兴趣的:(图论,数据结构)