Package ghidra.graph.algo
Class RecursiveFindPathsAlgorithm<V,E extends GEdge<V>>
java.lang.Object
ghidra.graph.algo.RecursiveFindPathsAlgorithm<V,E>
- Type Parameters:
V
- the vertex typeE
- the edge type
- All Implemented Interfaces:
FindPathsAlgorithm<V,
E>
public class RecursiveFindPathsAlgorithm<V,E extends GEdge<V>>
extends Object
implements FindPathsAlgorithm<V,E>
Finds all paths between two vertices for a given graph.
Warning: This is a recursive algorithm. As such, it is limited in how deep
it can recurse. Any path that exceeds the JAVA_STACK_DEPTH_LIMIT
will not be found.
Note: this algorithm is based entirely on the JohnsonCircuitsAlgorithm
.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
findPaths
(GDirectedGraph<V, E> g, V start, V end, Accumulator<List<V>> accumulator, TaskMonitor monitor) void
setStatusListener
(GraphAlgorithmStatusListener<V> listener)
-
Field Details
-
JAVA_STACK_DEPTH_LIMIT
public static final int JAVA_STACK_DEPTH_LIMIT- See Also:
-
-
Constructor Details
-
RecursiveFindPathsAlgorithm
public RecursiveFindPathsAlgorithm()
-
-
Method Details
-
setStatusListener
- Specified by:
setStatusListener
in interfaceFindPathsAlgorithm<V,
E extends GEdge<V>>
-
findPaths
public void findPaths(GDirectedGraph<V, E> g, V start, V end, Accumulator<List<V>> accumulator, TaskMonitor monitor) throws CancelledException- Specified by:
findPaths
in interfaceFindPathsAlgorithm<V,
E extends GEdge<V>> - Throws:
CancelledException
-