2012-06-03 4 views
0

У меня есть следующий график:цикла в виде графиков, содержащих несколько циклов

Sample graph shown by adenine molecule. Atoms are vertices, bonds are edges

Есть ли способ, я могу определить, все циклы в этом графике? Я знаю, что DFS можно использовать для обнаружения циклов, просто делая DFS до тех пор, пока не будет найден задний край, но мне было интересно, есть ли эффективный вычислительный способ возврата отдельных циклов, учитывая, что на графике фактически есть 3 цикла (1 -2-3-4-5-6, 4-5-7-8-9, 1-2-3-4-9-8-7-5-6). Я немного застрял, потому что кажется, что атом углерода принадлежит к множеству графиков, и я не могу думать ни о чем другом, кроме грубого, заставляя все возможные пути, происходящие из каждой вершины.

ответ

0

Вам не нужно искать все дорожки из КАЖДОЙ вершины.

только вершина ссылается на 3 или более другой могут принадлежать нескольким циклам

Вы должны проверить только 4,5,6 (, 9)

+0

ожидания, не вершина 8 принадлежит 4-5 -7-8-9 и 1-2-3-4-9-8-7-5-6? – ejang

+0

vertex 8 принадлежит к обоим и вы найдете оба цикла при проверке всех патчей с узлов 4,5,6 (с дубликатами) –

Смежные вопросы