Javascript中的最短路径算法
在图论中,最短路径问题是在图中的两个顶点(或节点)之间找到路径的问题,以使其构成边的权重之和最小。在这里,我们需要修改添加边缘并添加有向方法,以允许向边缘添加权重。
让我们看看如何添加它-
示例
/**
* Adds 2 edges with the same weight in either direction
*
* weight
* node1 <================> node2
* weight
*
*/
addEdge(node1, node2, weight = 1) {
this.edges[node1].push({ node: node2, weight: weight });
this.edges[node2].push({ node: node1, weight: weight });
}
/**
* Add the following edge:
*
* weight
* node1 ----------------> node2
*
*/
addDirectedEdge(node1, node2, weight = 1) {
this.edges[node1].push({ node: node2, weight: weight });
}
display() {
let graph = "";
this.nodes.forEach(node => {
graph += node + "->" + this.edges[node].map(n => n.node) .join(", ")+ "\n";
});
console.log(graph);
}现在,当在图上添加一条边时,如果我们不指定权重,则会为该边分配默认权重1。现在,我们可以使用它来实现最短路径算法。
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短