[英]Number of Nodes in a Cycle of a graph
我試圖找到圖形循環中的節點數。 我使用遞歸和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
應該計算有向圖循環中的節點數。但是有些情況下答案是錯誤的。 請幫忙。我最近開始學習圖論。
你不應該這樣做:
else if(rec[*it])
kount++;
此外,您需要確保起始節點(您調用函數的節點)實際上是循環的一部分。
第三件事 - 你根據你的函數返回kcount
,當你最終應該根據你是否在這個分支中遇到一個循環的事實返回true
或false
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.