如何获得比节点之间最短路径更多的路径?

时间:2017-06-14 21:07:10

标签: javascript arrays d3.js nodes shortest-path

在d3.js中的

我正在使用一个名为path的函数来获取2个节点之间的最短路径。 API说:

  

node.path(target)<>

     

返回从此节点到层次结构的最短路径   指定的目标节点。路径从此节点开始,上升到   此节点和目标节点的最不常见的祖先,然后   下降到目标节点。

通过这个定义,我创建了一个新数组,用于在2个节点之间保存数据。我可以单击名为beginNode的第一个节点和第二个节点d。它工作得非常好,它们之间的最短路径保存在数组shortest_path中:

 .on("click", function(d, i) //Hier beginnt große "click"-Funktion
              {
shortest_path = beginNode && beginNode.path(d) || [];.....

有时,有很多方法可以获得2个节点之间的路径,不仅是最短路径,还有更长路径。现在,我的目标是在2个点击的节点之间存储更多路径到该阵列或另一个阵列。但不幸的是,d3,js只提供最短的路径功能。我希望你们中的一些人能提供帮助。 Djikstra是解决这个问题的正确方法吗? 感谢

1 个答案:

答案 0 :(得分:2)

这称为k shortest paths problem。您可以使用名为Eppstein's Algorithm

的Dijkstra算法的变体来解决它