Package com.ibm.wala.util.graph.traverse
Class BFSPathFinder<T>
- java.lang.Object
-
- com.ibm.wala.util.graph.traverse.BFSPathFinder<T>
-
public class BFSPathFinder<T> extends Object
This class searches breadth-first for node that matches some criteria. If found, it reports a path to the first node found.This class follows the outNodes of the graph nodes to define the graph, but this behavior can be changed by overriding the getConnected method.
TODO: if finding many paths, use a dynamic programming algorithm instead of calling this repeatedly.
-
-
Constructor Summary
Constructors Constructor Description BFSPathFinder(Graph<T> G, Iterator<T> nodes, Predicate<T> f)Construct a breadth-first enumerator across the (possibly improper) subset of nodes reachable from the nodes in the given enumeration.BFSPathFinder(Graph<T> G, Iterator<T> sources, T target)Construct a breadth-first enumerator starting with any of a set of nodes in a directed graph.BFSPathFinder(Graph<T> G, T N, Predicate<T> f)Construct a breadth-first enumerator starting with a particular node in a directed graph.BFSPathFinder(Graph<T> G, T src, Iterator<T> targets)Construct a breadth-first enumerator starting with a particular node in a directed graph.BFSPathFinder(Graph<T> G, T src, T target)Construct a breadth-first enumerator starting with a particular node in a directed graph.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description @Nullable List<T>find()protected Iterator<? extends T>getConnected(T n)get the out edges of a given node
-
-
-
Constructor Detail
-
BFSPathFinder
public BFSPathFinder(Graph<T> G, T N, Predicate<T> f)
Construct a breadth-first enumerator starting with a particular node in a directed graph.- Parameters:
G- the graph whose nodes to enumerate
-
BFSPathFinder
public BFSPathFinder(Graph<T> G, T src, T target) throws IllegalArgumentException
Construct a breadth-first enumerator starting with a particular node in a directed graph.- Parameters:
G- the graph whose nodes to enumerate- Throws:
IllegalArgumentException- if G is null
-
BFSPathFinder
public BFSPathFinder(Graph<T> G, T src, Iterator<T> targets)
Construct a breadth-first enumerator starting with a particular node in a directed graph.- Parameters:
G- the graph whose nodes to enumerate
-
BFSPathFinder
public BFSPathFinder(Graph<T> G, Iterator<T> sources, T target)
Construct a breadth-first enumerator starting with any of a set of nodes in a directed graph.- Parameters:
G- the graph whose nodes to enumerate
-
-