【发布时间】:2016-08-07 07:11:21
【问题描述】:
我正在尝试查找图形循环中的节点数。我正在使用递归和 DFS 来计算图的所有循环中的节点数。这是 C++ 中的计算函数。
int iscyclic(int node,bool visited[],bool rec[],vector<int>g[])
{
if(!visited[node])
{
visited[node] = true;
rec[node] = true;
vector<int>::iterator it;
for(it=g[node].begin();it!=g[node].end();it++)
{
if(!visited[*it] && iscyclic(*it,visited,rec,g))
{
kount++;
}
else if(rec[*it])
kount++;
}
}
rec[node] = false;
return kount;
}
Visited 和 rec 数组默认设置为 false,kount 已全局设置为 0。 kount应该是计算有向图的一个循环中的节点数。但是也有答案错误的情况。请帮忙。我最近开始学习图论。
【问题讨论】:
-
“但也有答案错误的情况。” - 例子?
-
节点数 = 4 边数 = 4 连接如下:- 1 -2, 2 -3, 3 -4, 4 -3,
-
循环数是图形大小的指数,你确定要全部计算吗?
-
是的,考虑了循环数,但让我烦恼的是一个循环中的节点数