Class 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 a Graph, 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
    • Field Summary

      • Fields inherited from class java.util.AbstractList

        modCount
    • 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 node
      boolean 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
      • 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
    • Constructor Detail

      • DFSFinishTimeIterator

        public DFSFinishTimeIterator()
    • Method Detail

      • init

        protected void init​(Graph<T> G,
                            java.util.Iterator<? extends T> nodes)
        Subclasses must call this in the constructor!
      • hasNext

        public boolean hasNext()
        Return whether there are any more nodes left to enumerate.
        Specified by:
        hasNext in interface java.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 interface java.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