Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jgrapht.traverse
Class CrossComponentIterator<V,E,D>

    java.lang.Object
      org.jgrapht.traverse.AbstractGraphIterator<V,E>
          org.jgrapht.traverse.CrossComponentIterator<V,E,D>

Type Parameters:
  `V` - vertex type
  `E` - edge type
  `D` - type of data associated to seen vertices

All Implemented Interfaces:
  java.util.Iterator<V>, GraphIterator<V,E>

Direct Known Subclasses:
  BreadthFirstIterator, ClosestFirstIterator, DepthFirstIterator, TopologicalOrderIterator

    public abstract class CrossComponentIterator<V,E,D>

extends AbstractGraphIterator<V,E>

Provides a cross-connected-component traversal functionality for iterator subclasses.

Since:
  Jan 31, 2004
Author:
  Barak Naveh

Constructor Summary
`CrossComponentIterator(Graph<V,E> g, V startVertex)` Creates a new iterator for the specified graph.

Method Summary
`protected abstract void` | `encounterVertex(V vertex, E edge)` Update data structures the first time we see a vertex.
`protected abstract void` | `encounterVertexAgain(V vertex, E edge)` Called whenever we re-encounter a vertex.
`Graph<V,E>` | `getGraph()`
`protected D` | `getSeenData(V vertex)` Access the data stored for a seen vertex.
`boolean` | `hasNext()`
`protected abstract boolean` | `isConnectedComponentExhausted()` Returns `true` if there are no more uniterated vertices in the currently iterated connected component; `false` otherwise.
`protected boolean` | `isSeenVertex(java.lang.Object vertex)` Determines whether a vertex has been seen yet by this traversal.
`V` | `next()`
`protected abstract V` | `provideNextVertex()` Returns the vertex to be returned in the following call to the iterator `next` method.
`protected D` | `putSeenData(V vertex, D data)` Stores iterator-dependent data for a vertex that has been seen.

Methods inherited from class org.jgrapht.traverse.AbstractGraphIterator
`addTraversalListener, fireConnectedComponentFinished, fireConnectedComponentStarted, fireEdgeTraversed, fireVertexTraversed, isCrossComponentTraversal, isReuseEvents, remove, removeTraversalListener, setCrossComponentTraversal, setReuseEvents`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CrossComponentIterator

    public CrossComponentIterator(Graph<V,E> g,
                                  V startVertex)

  Creates a new iterator for the specified graph. Iteration will start at the specified start vertex. If the specified start vertex is `null`, Iteration will start at an arbitrary graph vertex.

  Parameters:
    `g` - the graph to be iterated.
    `startVertex` - the vertex iteration to be started.
  Throws:
    `java.lang.IllegalArgumentException` - if `g==null` or does not contain `startVertex`

Method Detail

### getGraph

    public Graph<V,E> getGraph()

  Returns:
    the graph being traversed

### hasNext

    public boolean hasNext()

  See Also:
    `Iterator.hasNext()`

### next

    public V next()

  See Also:
    `Iterator.next()`

### isConnectedComponentExhausted

    protected abstract boolean isConnectedComponentExhausted()

  Returns `true` if there are no more uniterated vertices in the currently iterated connected component; `false` otherwise.

  Returns:
    `true` if there are no more uniterated vertices in the currently iterated connected component; `false` otherwise.

### encounterVertex

    protected abstract void encounterVertex(V vertex,
                                            E edge)

  Update data structures the first time we see a vertex.

  Parameters:
    `vertex` - the vertex encountered
    `edge` - the edge via which the vertex was encountered, or null if the vertex is a starting point

### provideNextVertex

    protected abstract V provideNextVertex()

  Returns the vertex to be returned in the following call to the iterator `next` method.

  Returns:
    the next vertex to be returned by this iterator.

### getSeenData

    protected D getSeenData(V vertex)

  Access the data stored for a seen vertex.

  Parameters:
    `vertex` - a vertex which has already been seen.
  Returns:
    data associated with the seen vertex or `null` if no data was associated with the vertex. A `null` return can also indicate that the vertex was explicitly associated with `null`.

### isSeenVertex

    protected boolean isSeenVertex(java.lang.Object vertex)

  Determines whether a vertex has been seen yet by this traversal.

  Parameters:
    `vertex` - vertex in question
  Returns:
    `true` if vertex has already been seen

### encounterVertexAgain

    protected abstract void encounterVertexAgain(V vertex,
                                                 E edge)

  Called whenever we re-encounter a vertex. The default implementation does nothing.

  Parameters:
    `vertex` - the vertex re-encountered
    `edge` - the edge via which the vertex was re-encountered

### putSeenData

    protected D putSeenData(V vertex,
                            D data)

  Stores iterator-dependent data for a vertex that has been seen.

  Parameters:
    `vertex` - a vertex which has been seen.
    `data` - data to be associated with the seen vertex.
  Returns:
    previous value associated with specified vertex or `null` if no data was associated with the vertex. A `null` return can also indicate that the vertex was explicitly associated with `null`.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD