Я хочу найти все возможные пути, начиная с определенного узла и заканчивая конкретным узлом. Я пробовал глубину поиска в Java, но это не сработало в моем случае. Потому что мои пути будут в одном направлении. Я не хочу обходить все остальные узлы вокруг выбранных.
Я не могу загрузить изображение, которое показывает, что я хочу. Во всяком случае, я постараюсь объяснить.
Среди узлов
0 1 2 3 4 5 6 7 8 9
Пути, которые я хочу найти, например, будут начинаться с 2 до 9. Возможные пути, создаваемые алгоритмом, должны быть
2-7-9
2-4-6-8-9
2-4-6-9
Для узла-1 моей следующей возможностью будет только узел-2, поэтому я не буду пробовать узел 0 и узел -3. Из-за некоторых специальных правил, которые я установил, только узел-2 подходит для узла-1. Следующие узлы для узла-2, узла-4 и узла-7 выбраны. Для узла-4 подходит только узел-6. Для узла 6 подходят узел 8 и узел 9. С другой стороны, для узла 7 следующим узлом будет только 9.
Все эти пути создаются и сохраняются в хэш-карте или в структуре списка.
DFS находит пути, например, между 0-1 и 1-3, которые для меня неприемлемы. Поскольку характер алгоритма, он находит кратчайший путь. Я хочу, чтобы все возможности по правилу были не самыми короткими. Правило не проблема, поэтому я не хочу, чтобы вы смущались и скучали. Для меня важен общий способ решения этой проблемы.
Заранее спасибо