Function detect_cycle::detect_cycle_directed
source · pub fn detect_cycle_directed(
n: usize,
edges: &[(usize, usize)]
) -> Option<Vec<usize>>
Expand description
有向グラフの閉路を求めます。
n
: 頂点数edges
: 辺
返り値は、閉路をなす辺の index のベクタです。
Example
use detect_cycle::detect_cycle_directed;
// 0 1 3
// (0) --> (1) --> (2) --> (5)
// ^ |
// 5 | | 2
// | v
// (4) <-- (3)
// 4
let cycle = detect_cycle_directed(6, &[(0, 1), (1, 2), (2, 3), (2, 5), (3, 4), (4, 1)]);
assert_eq!(cycle, Some(vec![1, 2, 4, 5]));