如何解决检测有向图中的循环
我写了下面的代码,它为每个输入提供正确的输出,除了这个: 顶点=v 边=e 0-1 0-2 1-2 2-3
bool detectcycle(int** edges,int** visited,int n,int v,int e,int& k)
{
visited[n][n]=true;
for(int i=0;i<v;i++)
{
if(edges[n][i]==1 && visited[n][i]==true)
{
k++;
return true;
}
else if(edges[n][i]==1 && visited[n][i]==false)
{
visited[n][i]=true;
visited[i][n]=true;
detectcycle(edges,visited,i,e,v,k);
}
}
if(k==0)
return false;
else
return true;
}
它给出的输出为真(包含循环)。 我可以在这段代码中实现什么来纠正这种情况?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。