Задать вопрос

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

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

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

Похожие вопросы