Package com.ibm.wala.util.graph.traverse
Class DFSDiscoverTimeIterator<T>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<E>
-
- java.util.ArrayList<T>
-
- com.ibm.wala.util.graph.traverse.DFSDiscoverTimeIterator<T>
-
- All Implemented Interfaces:
Serializable,Cloneable,Iterable<T>,Collection<T>,Iterator<T>,List<T>,RandomAccess
- Direct Known Subclasses:
NumberedDFSDiscoverTimeIterator,SlowDFSDiscoverTimeIterator
public abstract class DFSDiscoverTimeIterator<T> extends ArrayList<T> implements Iterator<T>
This class implements depth-first search over aNumberedGraph, return an enumeration of the nodes of the graph in order of increasing discover 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
-
-
Field Summary
-
Fields inherited from class java.util.AbstractList
modCount
-
-
Constructor Summary
Constructors Constructor Description DFSDiscoverTimeIterator()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract Iterator<? extends T>getConnected(T n)get the out edges of a given nodeprotected abstract @Nullable Iterator<? extends T>getPendingChildren(T n)booleanhasNext()Return whether there are any more nodes left to enumerate.protected voidinit(Iterator<? extends T> nodes)subclass constructors must call this!protected voidinit(T N)subclass constructors must call this!Tnext()Find the next graph node in discover time order.voidremove()protected abstract voidsetPendingChildren(T v, Iterator<? extends T> iterator)protected voidvisitEdge(T from, T to)-
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
-
Methods inherited from class java.util.AbstractCollection
containsAll, toString
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Collection
parallelStream, stream, toArray
-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
Methods inherited from interface java.util.List
containsAll
-
-
-
-
Method Detail
-
init
protected void init(T N)
subclass constructors must call this!
-
hasNext
public boolean hasNext()
Return whether there are any more nodes left to enumerate.
-
next
@NullUnmarked public T next() throws NoSuchElementException
Find the next graph node in discover time order.- Specified by:
nextin interfaceIterator<T>- Returns:
- the next graph node in discover time order.
- Throws:
NoSuchElementException
-
getConnected
protected abstract Iterator<? extends 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:
removein interfaceIterator<T>- Throws:
UnimplementedError
-
-