@@ -357,7 +357,7 @@ for(var i=0; i < mst.length; ++i) {
357357}
358358```
359359
360- ### find the shortest paths using Dijkstra on weighted directed graph
360+ ### Find the shortest paths using Dijkstra
361361
362362The sample code below show how to obtain the shortest paths from a starting point 0 on a weighted directed graph using Dijkstra:
363363
@@ -381,13 +381,6 @@ g.addEdge(new jsgraphs.Edge(5, 6, 13.0));
381381g .addEdge (new jsgraphs.Edge (7 , 5 , 6.0 ));
382382g .addEdge (new jsgraphs.Edge (7 , 2 , 7.0 ));
383383
384- expect (g .V ).to .equal (8 );
385- var edgeCount = 0 ;
386- for (var v = 0 ; v < g .V ; ++ v){
387- var adj_v = g .adj (v);
388- edgeCount += adj_v .length ;
389- }
390- expect (edgeCount).to .equal (16 );
391384
392385var dijkstra = new jsgraphs.Dijkstra (g, 0 );
393386
@@ -403,4 +396,45 @@ for(var v = 1; v < g.V; ++v){
403396 console .log (' =====distance: ' + dijkstra .distanceTo (v) + ' =========' );
404397 }
405398}
399+ ```
400+
401+ ### Find the shortest paths using Bellman-Ford
402+
403+ The sample code below show how to obtain the shortest paths from a starting point 0 on a weighted directed graph using Bellman-Ford:
404+
405+ ``` javascript
406+ var jsgraphs = require (' js-graph-algorithms' );
407+ var g = new jsgraphs.WeightedDiGraph (8 );
408+ g .addEdge (new jsgraphs.Edge (0 , 1 , 5.0 ));
409+ g .addEdge (new jsgraphs.Edge (0 , 4 , 9.0 ));
410+ g .addEdge (new jsgraphs.Edge (0 , 7 , 8.0 ));
411+ g .addEdge (new jsgraphs.Edge (1 , 2 , 12.0 ));
412+ g .addEdge (new jsgraphs.Edge (1 , 3 , 15.0 ));
413+ g .addEdge (new jsgraphs.Edge (1 , 7 , 4.0 ));
414+ g .addEdge (new jsgraphs.Edge (2 , 3 , 3.0 ));
415+ g .addEdge (new jsgraphs.Edge (2 , 6 , 11.0 ));
416+ g .addEdge (new jsgraphs.Edge (3 , 6 , 9.0 ));
417+ g .addEdge (new jsgraphs.Edge (4 , 5 , 5.0 ));
418+ g .addEdge (new jsgraphs.Edge (4 , 6 , 20.0 ));
419+ g .addEdge (new jsgraphs.Edge (4 , 7 , 5.0 ));
420+ g .addEdge (new jsgraphs.Edge (5 , 2 , 1.0 ));
421+ g .addEdge (new jsgraphs.Edge (5 , 6 , 13.0 ));
422+ g .addEdge (new jsgraphs.Edge (7 , 5 , 6.0 ));
423+ g .addEdge (new jsgraphs.Edge (7 , 2 , 7.0 ));
424+
425+
426+ var bf = new jsgraphs.BellmanFord (g, 0 );
427+
428+ for (var v = 1 ; v < g .V ; ++ v){
429+ if (bf .hasPathTo (v)){
430+ var path = bf .pathTo (v);
431+ console .log (' =====path from 0 to ' + v + ' start==========' );
432+ for (var i = 0 ; i < path .length ; ++ i) {
433+ var e = path[i];
434+ console .log (e .from () + ' => ' + e .to () + ' : ' + e .weight );
435+ }
436+ console .log (' =====path from 0 to ' + v + ' end==========' );
437+ console .log (' =====distance: ' + bf .distanceTo (v) + ' =========' );
438+ }
439+ }
406440```
0 commit comments