Package com.ibm.wala.util.graph.traverse
Class DFSFinishTimeIterator<T>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<E>
-
- java.util.ArrayList<T>
-
- com.ibm.wala.util.graph.traverse.DFSFinishTimeIterator<T>
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,java.lang.Iterable<T>
,java.util.Collection<T>
,java.util.Iterator<T>
,java.util.List<T>
,java.util.RandomAccess
- Direct Known Subclasses:
NumberedDFSFinishTimeIterator
,SlowDFSFinishTimeIterator
public abstract class DFSFinishTimeIterator<T> extends java.util.ArrayList<T> implements java.util.Iterator<T>
This class implements depth-first search over aGraph
, return an enumeration of the nodes of the graph in order of increasing finishing time. This class follows the outNodes of the graph nodes to define the graph, but this behavior can be changed by overriding the getConnected method.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description DFSFinishTimeIterator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.Iterator<T>
getConnected(T n)
get the out edges of a given nodeboolean
hasNext()
Return whether there are any more nodes left to enumerate.protected void
init(Graph<T> G, java.util.Iterator<? extends T> nodes)
Subclasses must call this in the constructor!T
next()
Find the next graph node in finishing time order.void
remove()
-
Methods inherited from class java.util.ArrayList
add, add, addAll, addAll, clear, clone, contains, ensureCapacity, equals, forEach, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeIf, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSize
-
-
-
-
Method Detail
-
init
protected void init(Graph<T> G, java.util.Iterator<? extends T> nodes)
Subclasses must call this in the constructor!- Parameters:
G
-nodes
-
-
hasNext
public boolean hasNext()
Return whether there are any more nodes left to enumerate.- Specified by:
hasNext
in interfacejava.util.Iterator<T>
- Returns:
- true if there nodes left to enumerate.
-
next
public T next() throws java.util.NoSuchElementException
Find the next graph node in finishing time order.- Specified by:
next
in interfacejava.util.Iterator<T>
- Returns:
- the next graph node in finishing time order.
- Throws:
java.util.NoSuchElementException
-
getConnected
protected java.util.Iterator<T> getConnected(T n)
get the out edges of a given node- Parameters:
n
- the node of which to get the out edges- Returns:
- the out edges
-
remove
public void remove() throws UnimplementedError
- Specified by:
remove
in interfacejava.util.Iterator<T>
- Throws:
UnimplementedError
- See Also:
Iterator.remove()
-
-