Skip to content

Commit 8f5dfb3

Browse files
committed
npm deployed
1 parent 1715f89 commit 8f5dfb3

File tree

2 files changed

+49
-1
lines changed

2 files changed

+49
-1
lines changed

README.md

+48
Original file line numberDiff line numberDiff line change
@@ -355,4 +355,52 @@ for(var i=0; i < mst.length; ++i) {
355355
var w = e.other(v);
356356
console.log('(' + v + ', ' + w + '): ' + e.weight);
357357
}
358+
```
359+
360+
### find the shortest paths using Dijkstra on weighted directed graph
361+
362+
The sample code below show how to obtain the shortest paths from a starting point 0 on a weighted directed graph using Dijkstra:
363+
364+
```javascript
365+
var jsgraphs = require('js-graph-algorithms');
366+
var g = new jsgraphs.WeightedDiGraph(8);
367+
g.addEdge(new jsgraphs.Edge(0, 1, 5.0));
368+
g.addEdge(new jsgraphs.Edge(0, 4, 9.0));
369+
g.addEdge(new jsgraphs.Edge(0, 7, 8.0));
370+
g.addEdge(new jsgraphs.Edge(1, 2, 12.0));
371+
g.addEdge(new jsgraphs.Edge(1, 3, 15.0));
372+
g.addEdge(new jsgraphs.Edge(1, 7, 4.0));
373+
g.addEdge(new jsgraphs.Edge(2, 3, 3.0));
374+
g.addEdge(new jsgraphs.Edge(2, 6, 11.0));
375+
g.addEdge(new jsgraphs.Edge(3, 6, 9.0));
376+
g.addEdge(new jsgraphs.Edge(4, 5, 5.0));
377+
g.addEdge(new jsgraphs.Edge(4, 6, 20.0));
378+
g.addEdge(new jsgraphs.Edge(4, 7, 5.0));
379+
g.addEdge(new jsgraphs.Edge(5, 2, 1.0));
380+
g.addEdge(new jsgraphs.Edge(5, 6, 13.0));
381+
g.addEdge(new jsgraphs.Edge(7, 5, 6.0));
382+
g.addEdge(new jsgraphs.Edge(7, 2, 7.0));
383+
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);
391+
392+
var dijkstra = new jsgraphs.Dijkstra(g, 0);
393+
394+
for(var v = 1; v < g.V; ++v){
395+
if(dijkstra.hasPathTo(v)){
396+
var path = dijkstra.pathTo(v);
397+
console.log('=====path from 0 to ' + v + ' start==========');
398+
for(var i = 0; i < path.length; ++i) {
399+
var e = path[i];
400+
console.log(e.from() + ' => ' + e.to() + ': ' + e.weight);
401+
}
402+
console.log('=====path from 0 to ' + v + ' end==========');
403+
console.log('=====distance: ' + dijkstra.distanceTo(v) + '=========');
404+
}
405+
}
358406
```

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "js-graph-algorithms",
3-
"version": "1.0.5",
3+
"version": "1.0.6",
44
"description": "Package implements data structures and algorithms for processing various types of graphs",
55
"author": "Xianshun Chen",
66
"contributors": [

0 commit comments

Comments
 (0)