Javascript 如何计算节点之间的最短可能路径?

Javascript 如何计算节点之间的最短可能路径?,javascript,graph-theory,Javascript,Graph Theory,我的程序有以下变量输入数组,例如: [AB3,EC10] 它可以是任意长度,第一个和第二个字符分别是路由的起点和终点。下面的数字是第一个和第二个字符(节点)之间的距离 如果你只能从一个节点逐步前进到另一个节点(要从A到D,你必须走AB、BC、CD、ED),并且节点之间的距离是可变的,那么我该如何计算从一个点到另一个点的最短路径 const routesInfo = ["AB5", "BC4", "CD8", "DC8", "DE6", "AD5", "CE2", "EB3", "AE7"]

我的程序有以下变量输入数组,例如: [AB3,EC10]

它可以是任意长度,第一个和第二个字符分别是路由的起点和终点。下面的数字是第一个和第二个字符(节点)之间的距离

如果你只能从一个节点逐步前进到另一个节点(要从A到D,你必须走AB、BC、CD、ED),并且节点之间的距离是可变的,那么我该如何计算从一个点到另一个点的最短路径

const routesInfo = ["AB5", "BC4", "CD8", "DC8", "DE6", "AD5", "CE2", "EB3", "AE7"]

  const stop1 = 'A',
  stop2 = 'B',
  stop3 = 'C',
  stop4 = '',
  stop5 = ''

  var trip1dist = 0,
    trip2dist = 0,
    trip3dist = 0,
    trip4dist = 0,
    dist = 0

  // for 3 stations
  if (stop1 && stop2 && stop3 && (!stop4) && (!stop5)) {
    var foundFirst = false,
    foundSecond = false
    for (var i = 0; i<routesInfo.length;i++) {
      var origin = routesInfo[i].charAt(0),
      destination = routesInfo[i].charAt(1)
      if (origin == stop1 && destination == stop2) {
        distance = routesInfo[i].charAt(2)
        trip1dist = distance
        foundFirst = true
      }
      if (origin == stop2 && destination == stop3) {
        distance = routesInfo[i].charAt(2)
        trip2dist = distance
        foundSecond = true
      }
    }
    // REFACTOR CHECKING FOR IMPOSSIBLE ROUTE
    if (foundFirst && !foundSecond) {
      console.log(null)
    }
    if (!foundFirst && foundSecond) {
      console.log(null)
    }
    if (!foundFirst && !foundSecond) {
      console.log(null)
    }
    var total = Number(trip1dist) + Number(trip2dist)
    console.log('The distance of the trip was: '+total)
  }
const routeInfo=[“AB5”、“BC4”、“CD8”、“DC8”、“DE6”、“AD5”、“CE2”、“EB3”、“AE7”]
const stop1='A',
stop2='B',
stop3='C',
stop4='',
stop5=''
var trip1dist=0,
trip2dist=0,
trip3dist=0,
Trip4List=0,
距离=0
//三站
如果(stop1&&stop2&&stop3&(!stop4)&&(!stop5)){
var foundFirst=false,
foundSecond=false

对于(var i=0;i如果您事先知道起点和终点,您可以运行Dijkstra算法来查找起点和终点之间的最短路径。Dijkstra算法是图形中最短路径问题的著名解决方案。您可以阅读更多关于它的信息。此外,您还可以很容易地找到它的实现


如果你想知道任意两个给定点之间的最短距离,你应该研究一下Floyd Warshall算法。你可以阅读更多关于它的内容。

如果你事先知道起点和终点,你可以运行Dijkstra算法来找到起点和终点之间的最短路径。Dijkstra算法是一个众所周知的算法图中最短路径问题的解决方案。你可以阅读更多关于它的内容。而且,你可以很容易地找到它的实现

如果你想知道任意两个给定点之间的最短距离,你应该看看Floyd-Warshall算法。你可以阅读更多关于它的内容