public class AcyclicSP extends Object
This implementation uses a topological-sort based algorithm. The constructor takes time proportional to V + E, 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 |
|---|
AcyclicSP(EdgeWeightedDigraph G,
int s)
Computes a shortest paths tree from s to every other vertex in
the directed acyclic graph 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 AcyclicSP data type.
|
Iterable<DirectedEdge> |
pathTo(int v)
Returns a shortest path from the source vertex s to vertex v.
|
public AcyclicSP(EdgeWeightedDigraph G, int s)
G - the acyclic digraphs - the source vertexIllegalArgumentException - if the digraph is not acyclicIllegalArgumentException - 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.