图深度优先遍历
void dfs(int i)//图用数组模拟邻接表存储 ,访问点i
{
visited[i]=true; //标记为已访问过
for(int j=1;j<=num[i];j++) //遍历与i相关联的所有为访问过的顶点
if(!visited[g[i][j]])
dfs(g[i][j]);
}
int main()
{
……
memset(visited,false,sizeof(visited)) ;
for(int i=1;i<=n;i++)//每一个点都作为起点尝试访问 因为不是从任何一点开始都能遍历整个图
if(!visited[i])
dfs(i);
return 0;
}