public class DijkstraSP extends Object
This implementation uses Dijkstra's algorithm with a binary heap. The constructor takes time proportional to E log V, where V is the number of vertices and E is the number of edges. Afterwards, the distTo() and hasPathTo() methods take constant time and the pathTo() method takes time proportional to the number of edges in the shortest path returned.
For additional documentation, see Section 4.4 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
| Constructor and Description |
|---|
DijkstraSP(EdgeWeightedDigraph G,
int s)
Computes a shortest paths tree from s to every other vertex in
the edge-weighted digraph G.
|
| Modifier and Type | Method and Description |
|---|---|
double |
distTo(int v)
Returns the length of a shortest path from the source vertex s to vertex v.
|
boolean |
hasPathTo(int v)
Is there a path from the source vertex s to vertex v?
|
static void |
main(String[] args)
Unit tests the DijkstraSP data type.
|
Iterable<DirectedEdge> |
pathTo(int v)
Returns a shortest path from the source vertex s to vertex v.
|
public DijkstraSP(EdgeWeightedDigraph G, int s)
G - the edge-weighted digraphs - the source vertexIllegalArgumentException - if an edge weight is negativeIllegalArgumentException - unless 0 ≤ s ≤ V - 1public double distTo(int v)
v - the destination vertexpublic boolean hasPathTo(int v)
v - the destination vertexpublic Iterable<DirectedEdge> pathTo(int v)
v - the destination vertexpublic static void main(String[] args)
Copyright © 2014. All Rights Reserved.