edu.princeton.cs.algs4
Class DijkstraAllPairsSP
- java.lang.Object
-
- edu.princeton.cs.algs4.DijkstraAllPairsSP
-
public class DijkstraAllPairsSP extends java.lang.ObjectTheDijkstraAllPairsSPclass represents a data type for solving the all-pairs shortest paths problem in edge-weighted digraphs where the edge weights are nonnegative.This implementation runs Dijkstra's algorithm from each vertex. The constructor takes time proportional to V (E log V) and uses space proprtional to V2, where V is the number of vertices and E is the number of edges. Afterwards, the
dist()andhasPath()methods take constant time and thepath()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 Summary
Constructors Constructor and Description DijkstraAllPairsSP(EdgeWeightedDigraph G)Computes a shortest paths tree from each vertex to to every other vertex in the edge-weighted digraphG.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description doubledist(int s, int t)Returns the length of a shortest path from vertexsto vertext.booleanhasPath(int s, int t)Is there a path from the vertexsto vertext?java.lang.Iterable<DirectedEdge>path(int s, int t)Returns a shortest path from vertexsto vertext.
-
-
-
Constructor Detail
-
DijkstraAllPairsSP
public DijkstraAllPairsSP(EdgeWeightedDigraph G)
Computes a shortest paths tree from each vertex to to every other vertex in the edge-weighted digraphG.- Parameters:
G- the edge-weighted digraph- Throws:
java.lang.IllegalArgumentException- if an edge weight is negativejava.lang.IllegalArgumentException- unless0 <= s < V
-
-
Method Detail
-
path
public java.lang.Iterable<DirectedEdge> path(int s, int t)
Returns a shortest path from vertexsto vertext.- Parameters:
s- the source vertext- the destination vertex- Returns:
- a shortest path from vertex
sto vertextas an iterable of edges, andnullif no such path - Throws:
java.lang.IllegalArgumentException- unless0 <= s < Vjava.lang.IllegalArgumentException- unless0 <= t < V
-
hasPath
public boolean hasPath(int s, int t)Is there a path from the vertexsto vertext?- Parameters:
s- the source vertext- the destination vertex- Returns:
trueif there is a path from vertexsto vertext, andfalseotherwise- Throws:
java.lang.IllegalArgumentException- unless0 <= s < Vjava.lang.IllegalArgumentException- unless0 <= t < V
-
dist
public double dist(int s, int t)Returns the length of a shortest path from vertexsto vertext.- Parameters:
s- the source vertext- the destination vertex- Returns:
- the length of a shortest path from vertex
sto vertext;Double.POSITIVE_INFINITYif no such path - Throws:
java.lang.IllegalArgumentException- unless0 <= s < Vjava.lang.IllegalArgumentException- unless0 <= t < V
-
-
DataMelt 3.0 © DataMelt by jWork.ORG