簡體   English   中英

圖形循環中的節點數

[英]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;
}

Visitedrec數組默認設置為false, kount全局設置為0 kount應該計算有向圖循環中的節點數。但是有些情況下答案是錯誤的。 請幫忙。我最近開始學習圖論。

你不應該這樣做:

else if(rec[*it])
   kount++;

此外,您需要確保起始節點(您調用函數的節點)實際上是循環的一部分。

第三件事 - 你根據你的函數返回kcount ,當你最終應該根據你是否在這個分支中遇到一個循環的事實返回truefalse

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM