Package org.apache.calcite.util.graph
Class TopologicalOrderIterator<V,E extends DefaultEdge>
- java.lang.Object
-
- org.apache.calcite.util.graph.TopologicalOrderIterator<V,E>
-
- Type Parameters:
V
- Vertex typeE
- Edge type
- All Implemented Interfaces:
java.util.Iterator<V>
public class TopologicalOrderIterator<V,E extends DefaultEdge> extends java.lang.Object implements java.util.Iterator<V>
Iterates over the edges of a graph in topological order.
-
-
Constructor Summary
Constructors Constructor Description TopologicalOrderIterator(DirectedGraph<V,E> graph)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) java.util.Set<V>
findCycles()
boolean
hasNext()
V
next()
static <V,E extends DefaultEdge>
java.lang.Iterable<V>of(DirectedGraph<V,E> graph)
private void
populate(java.util.Map<V,int[]> countMap, java.util.List<V> empties)
void
remove()
-
-
-
Field Detail
-
countMap
final java.util.Map<V,int[]> countMap
-
empties
final java.util.List<V> empties
-
graph
private final DefaultDirectedGraph<V,E extends DefaultEdge> graph
-
-
Constructor Detail
-
TopologicalOrderIterator
public TopologicalOrderIterator(DirectedGraph<V,E> graph)
-
-
Method Detail
-
of
public static <V,E extends DefaultEdge> java.lang.Iterable<V> of(DirectedGraph<V,E> graph)
-
hasNext
public boolean hasNext()
- Specified by:
hasNext
in interfacejava.util.Iterator<V>
-
remove
public void remove()
- Specified by:
remove
in interfacejava.util.Iterator<V>
-
findCycles
java.util.Set<V> findCycles()
-
-