在有向图中打印所有循环

问题描述 投票:0回答:1

我有一个图的邻接矩阵。我需要输出该图中的所有周期。我如何使用 dfs 来做到这一点?

void al_dfs(int tmp_vertex,int** Graph,vector<int>& color,int number,vector<int>& result){
    color[tmp_vertex] = 1;
    for(int i = 0;i<number;i++){
        if((color[i] == 0)){ al_dfs(i,Graph,color,number,result); result.push_back(i); };
        if((color[i] == 1)){
            for(int i = 0;i< result.size();i++) cout << result[i] << " ";
        }
    }
    color[tmp_vertex] = 2;
}

我写了一个小功能,但我明白还有很多事情还没有完成。

c++ graph adjacency-matrix
1个回答
0
投票

您可以阅读

《Algorithms FOURTH EDITION 》 by Robert Sedgewick and Kevin Wayne
并搜索
Finding a directed cycle
部分,其中提供了完整的java代码和图表。

© www.soinside.com 2019 - 2024. All rights reserved.