Как найти все пути (исключая циклы) от точки до точки на ориентированном графе?

Есть ориентированный граф с циклами, состоит примерно из 1000 узлов.
1547873538a541869617c8da858f005e.gif
Например для 1-4 будут пути: 1-5-4, 1-2-5-4.
Оптимальным подходом полагаю будет использовать представление графа и результатов в виде списков смежности.
  • Вопрос задан
  • 1279 просмотров
Пригласить эксперта
Ответы на вопрос 3
begemot_sun
@begemot_sun
Программист в душе.
Ну очевидно тут нужно полным рекурсивным перебором находить.
Из точки А в точку Б пути идут разными способами, в том числе следующая после А будет точка С.
Т.о. чтобы найти все пути из точки А в Б, нужно найти все пути из С в Б + все пути из других точек смежных с А.
Применяя данное правило рекурсивно, можно обойти все вершины.
Ответ написан
Комментировать
@x32net Автор вопроса
Сделал вариант решения https://play.golang.org/p/DjS_Umejsr
Как избавиться от повторов и убрать рекурсию?
Ответ написан
Комментировать
@evgeniy_lm
построить дерево
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы