Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поиск всех путей в ориентированном ацикличном графе (https://javascript.ru/forum/misc/71009-poisk-vsekh-putejj-v-orientirovannom-aciklichnom-grafe.html)

deniv 18.10.2017 18:13

Поиск всех путей в ориентированном ацикличном графе
 
Всем привет!

Прошу помочь с реализацией алгоритма.

Собственно и сама задача:

Как обойти граф имея список смежных вершин, вида:
1: 2,3,4
2: 5,6
3: 7
4: 8,9
5: 10

Чтобы на выходе получить массив всех путей из вершин (1,2,3,4,5...) списка смежности вида:

[[1,2,5,10],
[1,2,6],
[1,3,7],
....
[2,5,10]
....
]

Путь считается законченным, если у вершины нет смежных вершин)

Заранее благодарю всех за подсказку или за пример реализации.

Для реализации пробовал алгоритм обхода в ширину, но что то не могу до конца правильно реализовать...:cray:

Alexandroppolus 18.10.2017 19:17

Цитата:

Сообщение от deniv
Для реализации пробовал алгоритм обхода в ширину

граф ориентированный ациклический, тут всё проще - не надо запоминать что уже было. Да и обход скорее в глубину.

https://jsfiddle.net/hr6d537o/
результат в консольке - массив путей, в каждом из которых по крайней мере 2 вершины.


Часовой пояс GMT +3, время: 02:24.