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 java.lang.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
Fields Modifier and Type Field Description static int
JAVA_STACK_DEPTH_LIMIT
-
Constructor Summary
Constructors Constructor Description RecursiveFindPathsAlgorithm()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
findPaths(GDirectedGraph<V,E> g, V start, V end, Accumulator<java.util.List<V>> accumulator, TaskMonitor monitor)
void
setStatusListener(GraphAlgorithmStatusListener<V> listener)
-
-
-
Field Detail
-
JAVA_STACK_DEPTH_LIMIT
public static final int JAVA_STACK_DEPTH_LIMIT
- See Also:
- Constant Field Values
-
-
Method Detail
-
setStatusListener
public void setStatusListener(GraphAlgorithmStatusListener<V> listener)
- Specified by:
setStatusListener
in interfaceFindPathsAlgorithm<V,E extends GEdge<V>>
-
findPaths
public void findPaths(GDirectedGraph<V,E> g, V start, V end, Accumulator<java.util.List<V>> accumulator, TaskMonitor monitor) throws CancelledException
- Specified by:
findPaths
in interfaceFindPathsAlgorithm<V,E extends GEdge<V>>
- Throws:
CancelledException
-
-