V
 the graph vertex typeE
 the graph edge typepublic class DepthFirstIterator<V,E> extends CrossComponentIterator<V,E,DepthFirstIterator.VisitColor>
For this iterator to work correctly the graph must not be modified during iteration. Currently there are no means to ensure that, nor to failfast. The results of such modifications are undefined.
Modifier and Type  Class and Description 

protected static class 
DepthFirstIterator.VisitColor
Standard vertex visit state enumeration.

Modifier and Type  Field and Description 

static Object 
SENTINEL
Sentinel object.

crossComponentTraversal, graph, nListeners, reusableEdgeEvent, reusableVertexEvent, reuseEvents
Constructor and Description 

DepthFirstIterator(Graph<V,E> g)
Creates a new depthfirst iterator for the specified graph.

DepthFirstIterator(Graph<V,E> g,
Iterable<V> startVertices)
Creates a new depthfirst iterator for the specified graph.

DepthFirstIterator(Graph<V,E> g,
V startVertex)
Creates a new depthfirst iterator for the specified graph.

Modifier and Type  Method and Description 

protected void 
encounterVertex(V vertex,
E edge)
Update data structures the first time we see a vertex.

protected void 
encounterVertexAgain(V vertex,
E edge)
Called whenever we reencounter a vertex.

Deque<Object> 
getStack()
Retrieves the LIFO stack of vertices which have been encountered but not yet visited (WHITE).

protected boolean 
isConnectedComponentExhausted()
Returns true if there are no more uniterated vertices in the currently iterated
connected component; false otherwise.

protected V 
provideNextVertex()
Returns the vertex to be returned in the following call to the iterator
next
method. 
finishVertex, getEntireGraphVertexIterator, getSeenData, hasNext, isSeenVertex, next, putSeenData
addTraversalListener, createEdgeTraversalEvent, createVertexTraversalEvent, fireConnectedComponentFinished, fireConnectedComponentStarted, fireEdgeTraversed, fireVertexFinished, fireVertexTraversed, getGraph, isCrossComponentTraversal, isReuseEvents, remove, removeTraversalListener, setCrossComponentTraversal, setReuseEvents
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEachRemaining
public static final Object SENTINEL
public DepthFirstIterator(Graph<V,E> g)
g
 the graph to be iterated.public DepthFirstIterator(Graph<V,E> g, V startVertex)
null
, iteration will start at an
arbitrary vertex and will not be limited, that is, will be able to traverse all the graph.g
 the graph to be iterated.startVertex
 the vertex iteration to be started.public DepthFirstIterator(Graph<V,E> g, Iterable<V> startVertices)
null
, iteration will start at an
arbitrary vertex and will not be limited, that is, will be able to traverse all the graph.g
 the graph to be iterated.startVertices
 the vertices iteration to be started.protected boolean isConnectedComponentExhausted()
CrossComponentIterator
isConnectedComponentExhausted
in class CrossComponentIterator<V,E,DepthFirstIterator.VisitColor>
protected void encounterVertex(V vertex, E edge)
CrossComponentIterator
encounterVertex
in class CrossComponentIterator<V,E,DepthFirstIterator.VisitColor>
vertex
 the vertex encounterededge
 the edge via which the vertex was encountered, or null if the vertex is a
starting pointprotected void encounterVertexAgain(V vertex, E edge)
CrossComponentIterator
encounterVertexAgain
in class CrossComponentIterator<V,E,DepthFirstIterator.VisitColor>
vertex
 the vertex reencounterededge
 the edge via which the vertex was reencounteredprotected V provideNextVertex()
CrossComponentIterator
next
method.provideNextVertex
in class CrossComponentIterator<V,E,DepthFirstIterator.VisitColor>
public Deque<Object> getStack()
Copyright © 2019. All rights reserved.