我有一个有向图,即n×n阶矩阵 我需要找到它中存在的所有周期以及周期中涉及的顶点。
以下是一个例子:
A B C D
0 1 1 1
1 0 1 0
1 0 0 0
1 0 0 0
输出应类似于:
No.of cycles found : 4
A->B->A
A->B->C->A
A->C->A
A->D->A
答案 0 :(得分:0)
您应该寻找基本周期,其中没有顶点(开始/结束除外)出现多次。在那种情况下,存在线性时间算法(节点中的线性+边缘)。例如,请参阅http://www.cs.tufts.edu/comp/150GA/homeworks/hw1/Johnson%2075.PDF。这来自Finding all cycles in a directed graph的第二个答案,这比第一个恕我直言更好。