Ну, вы, вероятно, путались между определением заднего края в ориентированном графе и обратным краем на неориентированном графе. Да, они разные.
В то время как в неориентированный граф Задние края - это ребра от текущей вершины до уже посещенной вершины. (как указано в ссылке из вашей ссылки).
В ориентированный граф определение для заднего края отличается. Задний край в ориентированном графе - это ребро от текущей вершины до вершины GREY (DFS для этой вершины начата, но еще не закончена), что означает, что она все еще находится в стеке рекурсии.
Итак, если вы берете определение заднего края, как показано в ориентированном графе, то да, этого достаточно для обнаружения цикла.
Но если вы берете определение заднего края так, как оно есть на неориентированном графике, вам также необходимо убедиться, что v
находится в стеке рекурсии, чтобы обнаружить цикл.
См. this и this для получения дополнительной информации и примеров.
Пример:
Рассмотрим порядок посещения DFS быть A -> B -> C
.
В этом примере край <A,C>
является обратным краем на графике (как уже было посещено C).
Но это не задний край в этом ориентированном графе - C уже был посещен, но не находится в стеке рекурсии, то есть это не цикл.
Большое спасибо! – Elimination