org.jgrapht.traverse
Class DepthFirstIterator<V,E>
- java.lang.Object
-
- org.jgrapht.traverse.AbstractGraphIterator<V,E>
-
- org.jgrapht.traverse.CrossComponentIterator<V,E,org.jgrapht.traverse.CrossComponentIterator.VisitColor>
-
- org.jgrapht.traverse.DepthFirstIterator<V,E>
-
- Type Parameters:
V- the graph vertex typeE- the graph edge type
- All Implemented Interfaces:
- java.util.Iterator<V>, GraphIterator<V,E>
public class DepthFirstIterator<V,E> extends CrossComponentIterator<V,E,org.jgrapht.traverse.CrossComponentIterator.VisitColor>
A depth-first iterator for a directed and an undirected graph. For this iterator to work correctly the graph must not be modified during iteration. Currently there are no means to ensure that, nor to fail-fast. The results of such modifications are undefined.- Since:
- Jul 29, 2003
-
-
Field Summary
Fields Modifier and Type Field and Description static java.lang.ObjectSENTINELSentinel object.
-
Constructor Summary
Constructors Constructor and Description DepthFirstIterator(Graph<V,E> g)Creates a new depth-first iterator for the specified graph.DepthFirstIterator(Graph<V,E> g, V startVertex)Creates a new depth-first iterator for the specified graph.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description java.util.Deque<java.lang.Object>getStack()Retrieves the LIFO stack of vertices which have been encountered but not yet visited (WHITE).-
Methods inherited from class org.jgrapht.traverse.CrossComponentIterator
getGraph, hasNext, next
-
Methods inherited from class org.jgrapht.traverse.AbstractGraphIterator
addTraversalListener, isCrossComponentTraversal, isReuseEvents, remove, removeTraversalListener, setCrossComponentTraversal, setReuseEvents
-
-
-
-
Field Detail
-
SENTINEL
public static final java.lang.Object SENTINEL
Sentinel object. Unfortunately, we can't use null, because ArrayDeque won't accept those. And we don't want to rely on the caller to provide a sentinel object for us. So we have to play typecasting games.
-
-
Constructor Detail
-
DepthFirstIterator
public DepthFirstIterator(Graph<V,E> g)
Creates a new depth-first iterator for the specified graph.- Parameters:
g- the graph to be iterated.
-
DepthFirstIterator
public DepthFirstIterator(Graph<V,E> g, V startVertex)
Creates a new depth-first iterator for the specified graph. Iteration will start at the specified start vertex and will be limited to the connected component that includes that vertex. If the specified start vertex isnull, iteration will start at an arbitrary vertex and will not be limited, that is, will be able to traverse all the graph.- Parameters:
g- the graph to be iterated.startVertex- the vertex iteration to be started.
-
-
Method Detail
-
getStack
public java.util.Deque<java.lang.Object> getStack()
Retrieves the LIFO stack of vertices which have been encountered but not yet visited (WHITE). This stack also contains sentinel entries representing vertices which have been visited but are still GRAY. A sentinel entry is a sequence (v, SENTINEL), whereas a non-sentinel entry is just (v).- Returns:
- stack
-
-
DataMelt 3.0 © DataMelt by jWork.ORG