Найти все пути с циклами в ориентированном графе с учетом исходной вершины

У меня проблемы с решением этой проблемы. Мне нужно найти все простых путей, начиная с исходной вершины s , содержащих простой цикл в ориентированном графе. т.е. повторы не разрешены, за исключением, конечно, единственной повторяющейся вершины, в которой цикл снова присоединяется к пути.

Я знаю, как использовать DFS-посещение, чтобы определить, есть ли у графа циклы, но я не могу найти способ использовать его для поиска всех таких путей, начиная с s .

Например, в этом графе

        +->B-+
        |    v
s-->T-->A<---C
        |    ^
        +->D-+

Начиная с s , путь S-T-A-B-C-A будет найден правильно. Но путь S-T-A-D-C-A не будет найден, потому что вершина C помечена как посещенная DFS.

Может кто-нибудь подскажет, как решить эту проблему? Спасибо

5
задан Aaron McDaid 16 January 2012 в 21:13
поделиться