Ниже приведен пример структуры данных я хранящийся в формате JSON:Нахождение кратчайшего пути в сложной структуре данных с сквозными узлами
{ "alpha": { "node1": "echo", "node2": "bravo" }, "bravo": { "node1": "alpha", "node2": "bravo", "node3": "charlie" }, "charlie": { "node1": "bravo", "node2": "foxtrot" }, "delta": { "node1": "alpha", "node2": "hotel" }, "echo": { "node1": "golf", "node2": "delta" }, "foxtrot": { "node1": "echo", "node2": "india", "node3": "delta" }, "golf": { "node1": "hotel", "node2": "charlie" }, "hotel": { "node1": "foxtrot", "node2": "india" }, "india": { "node1": "charlie", "node2": "hotel" } }
Я ищу, чтобы найти кратчайший путь между любыми двумя узлами. Например, самый короткий путь от echo
к hotel
является: echo
->golf
->hotel
Как вы можете видеть, эти узлы перекручивание и можно пройти их без конца. Следует также отметить, что пути узлов - это один путь. Таким образом, используя тот же самый пример выше, кратчайший путь от hotel
обратно echo
является: hotel
->foxtrot
->echo
Есть имя структуры данных, как это? Я знаю, что циклирование нарушает правила «дерева». Будет ли это обход графика?
Возможно, BFS может помочь здесь. –
что вы пробовали? google "short short path" дает вам несколько ссылок на типичные алгоритмы для этого. – njzk2