Class DiGraph<N,​E>

  • Type Parameters:
    N - Value type that the graph node stores.
    E - Value type that the graph edge stores.
    All Implemented Interfaces:
    AdjacencyGraph<N,​E>
    Direct Known Subclasses:
    LinkedDirectedGraph

    public abstract class DiGraph<N,​E>
    extends Graph<N,​E>
    A generic directed graph.
    • Constructor Detail

      • DiGraph

        public DiGraph()
    • Method Detail

      • getDirectedGraphNodes

        public abstract java.lang.Iterable<DiGraph.DiGraphNode<N,​E>> getDirectedGraphNodes()
        Gets an immutable iterable over all the nodes in the graph.
      • getOutEdges

        public abstract java.util.List<DiGraph.DiGraphEdge<N,​E>> getOutEdges​(N nodeValue)
        Gets an immutable list of out edges of the given node.
      • getInEdges

        public abstract java.util.List<DiGraph.DiGraphEdge<N,​E>> getInEdges​(N nodeValue)
        Gets an immutable list of in edges of the given node.
      • getDirectedPredNodes

        public abstract java.util.List<DiGraph.DiGraphNode<N,​E>> getDirectedPredNodes​(N nodeValue)
      • getDirectedSuccNodes

        public abstract java.util.List<DiGraph.DiGraphNode<N,​E>> getDirectedSuccNodes​(N nodeValue)
      • createDirectedGraphNode

        public abstract DiGraph.DiGraphNode<N,​E> createDirectedGraphNode​(N nodeValue)
      • getDirectedGraphEdges

        public abstract java.util.List<DiGraph.DiGraphEdge<N,​E>> getDirectedGraphEdges​(N n1,
                                                                                             N n2)
      • disconnectInDirection

        public abstract void disconnectInDirection​(N n1,
                                                   N n2)
        Disconnects all edges from n1 to n2.
        Parameters:
        n1 - Source node.
        n2 - Destination node.
      • isConnectedInDirection

        public abstract boolean isConnectedInDirection​(N n1,
                                                       N n2)
        Checks whether two nodes in the graph are connected via a directed edge.
        Parameters:
        n1 - Node 1.
        n2 - Node 2.
        Returns:
        true if the graph contains edge from n1 to n2.
      • isConnectedInDirection

        public abstract boolean isConnectedInDirection​(N n1,
                                                       E edgeValue,
                                                       N n2)
        Checks whether two nodes in the graph are connected via a directed edge with the given value.
        Parameters:
        n1 - Node 1.
        edgeValue - edge value tag
        n2 - Node 2.
        Returns:
        true if the edge exists.
      • isConnected

        public boolean isConnected​(N n1,
                                   N n2)
        Description copied from class: Graph
        Checks whether two nodes in the graph are connected.
        Specified by:
        isConnected in class Graph<N,​E>
        Parameters:
        n1 - Node 1.
        n2 - Node 2.
        Returns:
        true if the two nodes are connected.
      • isConnected

        public boolean isConnected​(N n1,
                                   E e,
                                   N n2)
        Description copied from class: Graph
        Checks whether two nodes in the graph are connected by the given edge type.
        Specified by:
        isConnected in class Graph<N,​E>
        Parameters:
        n1 - Node 1.
        e - The edge type.
        n2 - Node 2.