编写算法,判断有向图中是否存在从顶点v出发的简单网络,若有则输出该回路。
发布网友
发布时间:2022-05-29 16:09
我来回答
共1个回答
热心网友
时间:2023-10-24 06:29
给你个伪代码:
想法:用深搜。从v开始,往下找,如果到达的一个点与v相同,则有回路,程序中没有保存路径,你可以自己添加
int map[N][N];用邻接矩阵存图的关系,map[i][j] = 1,表示i->j有路径
int v;//起始点
void DFS(int map[][], int a, int dep)//
{
if(dep > 1 && a == v)
{
printf("有环路");
return;
}
for(i=0;i<N;i++)
{
if(map[a][i] == 1)
DFS(map, i, dep++);
}
}
void main()
{
//初始化map
DFS(map, v, 1);
}