Class CrossComponentIterator

    • Constructor Detail

      • CrossComponentIterator

        public CrossComponentIterator​(Graph g,
                                      java.lang.Object 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.NullPointerException
        java.lang.IllegalArgumentException
    • Method Detail

      • hasNext

        public boolean hasNext()
        See Also:
        Iterator.hasNext()
      • next

        public java.lang.Object 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​(java.lang.Object vertex,
                                                Edge 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 java.lang.Object 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 java.lang.Object getSeenData​(java.lang.Object 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​(java.lang.Object vertex,
                                                     Edge 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 java.lang.Object putSeenData​(java.lang.Object vertex,
                                               java.lang.Object 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.