我有很多个循环(由数字值表示,例如,1-2-3-4
对应一个循环,有4条边,边1
是{1:2}
,边2
是{2:3}
,边3
是{3,4}
,边4
是{4,1}
,以此类推)。
如果两个循环仅共享一条边,则称这两个循环相连。
例如,假设我有两个循环1-2-3-4
和5-6-7-8
,那么就有两个循环组,因为这两个循环没有相连。如果我有两个循环1-2-3-4
和3-4-5-6
,那么只有一个循环组,因为这两个循环共享同一条边。
下图可以说明我的观点:
alt text http://lh5.ggpht.com/_SDci0Pf3tzU/SuBhd07xbWI/AAAAAAAAFMs/9OlMhN8uzzQ/s640/mst.jpg
上图中的R1
、R2
到R7
是我所说的“循环”。在上图中,只有一个包含所有R1
到R7
的循环组。
找到所有循环组的最有效方法是什么?