类 AcyclicLP
- java.lang.Object
-
- edu.princeton.cs.algs4.AcyclicLP
-
public class AcyclicLP extends java.lang.ObjectTheAcyclicLPclass represents a data type for solving the single-source longest paths problem in edge-weighted directed acyclic graphs (DAGs). The edge weights can be positive, negative, or zero.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. Each call to
distTo(int)andhasPathTo(int)takes constant time; each call topathTo(int)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.
-
-
构造器概要
构造器 构造器 说明 AcyclicLP(EdgeWeightedDigraph G, int s)Computes a longest paths tree fromsto every other vertex in the directed acyclic graphG.
-
方法概要
修饰符和类型 方法 说明 doubledistTo(int v)Returns the length of a longest path from the source vertexsto vertexv.booleanhasPathTo(int v)Is there a path from the source vertexsto vertexv?static voidmain(java.lang.String[] args)Unit tests theAcyclicLPdata type.java.lang.Iterable<DirectedEdge>pathTo(int v)Returns a longest path from the source vertexsto vertexv.
-
-
-
构造器详细资料
-
AcyclicLP
public AcyclicLP(EdgeWeightedDigraph G, int s)
Computes a longest paths tree fromsto every other vertex in the directed acyclic graphG.- 参数:
G- the acyclic digraphs- the source vertex- 抛出:
java.lang.IllegalArgumentException- if the digraph is not acyclicjava.lang.IllegalArgumentException- unless0 <= s < V
-
-
方法详细资料
-
distTo
public double distTo(int v)
Returns the length of a longest path from the source vertexsto vertexv.- 参数:
v- the destination vertex- 返回:
- the length of a longest path from the source vertex
sto vertexv;Double.NEGATIVE_INFINITYif no such path - 抛出:
java.lang.IllegalArgumentException- unless0 <= v < V
-
hasPathTo
public boolean hasPathTo(int v)
Is there a path from the source vertexsto vertexv?- 参数:
v- the destination vertex- 返回:
trueif there is a path from the source vertexsto vertexv, andfalseotherwise- 抛出:
java.lang.IllegalArgumentException- unless0 <= v < V
-
pathTo
public java.lang.Iterable<DirectedEdge> pathTo(int v)
Returns a longest path from the source vertexsto vertexv.- 参数:
v- the destination vertex- 返回:
- a longest path from the source vertex
sto vertexvas an iterable of edges, andnullif no such path - 抛出:
java.lang.IllegalArgumentException- unless0 <= v < V
-
main
public static void main(java.lang.String[] args)
Unit tests theAcyclicLPdata type.- 参数:
args- the command-line arguments
-
-