1 DFS 搜索 修改
有向图有环需要注意 : 按照路径方向能组成回路才叫有环
例如 三边 A->B, A->C, B->C则 构成的不是环
A->B,B->C,C-A 组成的才是环
// 因为是有向图两个顶点也可以成环
void dfs(Graph g, int i)
{
int j;
color[i] = gray; //灰色 表示正在访问
printf("%c ", g.vex[i]);
for (j = 0; j < g.vex_num; j++) {
if (i != j && g.edge[i][j] != INFINITY) {//两顶点有边相连
if (color[j] == white) {
dfs(g, j);//如果该节点未访问 继续访问其临近节点
}
else if(color[j] == gray){
loop_num++;
is_dag = false; //有环
}
}
}
color[