グラフのサイクルでノードの数を見つけようとしています。再帰と 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
、有向グラフの1サイクルのノード数を計算することになっていますが、答えが間違っている場合があります。助けてください。最近グラフ理論を学び始めました。