Interface Graph<T extends Node>

Type Parameters:
T - The type of the node.
All Superinterfaces:
GeneralGraph<T>, Iterable<T>
All Known Implementing Classes:
AbstractBipolarFramework, AbstractEAFTheory, ArgumentTree, BpmnModel, ClaimBasedTheory, Compilation, DeductiveArgumentationFramework, DefaultGraph, DungTheory, EAFTheory, EvidentialArgumentationFramework, ExecutableDungTheory, HyperGraph, IncompleteTheory, NamedPEAFTheory, NecessityArgumentationFramework, PEAFTheory, PerceivableStructuredArgumentationFramework, PetriNet, ProbabilisticArgumentationFramework, ReachabilityGraph, SimpleGraph, SocialAbstractArgumentationFramework, StructuredArgumentationFramework, WeightedDungTheory

public interface Graph<T extends Node> extends GeneralGraph<T>
Common interface for graphs with nodes of type T
Author:
Matthias Thimm
  • Field Details

    • IGNORE_SELFLOOPS

      static final int IGNORE_SELFLOOPS
      When inverting a graph, ignore self loops (don't add and don't remove)
      See Also:
    • INVERT_SELFLOOPS

      static final int INVERT_SELFLOOPS
      When inverting a graph, deal with self loops like ordinary edges (add if not present and remove if present)
      See Also:
    • REMOVE_SELFLOOPS

      static final int REMOVE_SELFLOOPS
      When inverting a graph, simple remove self loops, but don't add new ones.
      See Also:
  • Method Details

    • add

      boolean add(T node)
      Adds the given node to this graph.
      Parameters:
      node - some node.
      Returns:
      "true" iff the edge has been added successfully.
    • add

      boolean add(GeneralEdge<T> edge)
      Adds the given edge to this graph. If at least one of the nodes the given edge connects is not in the graph, an illegal argument exception is thrown.
      Parameters:
      edge - some edge.
      Returns:
      "true" iff the edge has been added successfully.
    • getNodes

      Collection<T> getNodes()
      Returns the nodes of this graph.
      Specified by:
      getNodes in interface GeneralGraph<T extends Node>
      Returns:
      the nodes of this graph.
    • getNumberOfNodes

      int getNumberOfNodes()
      Returns the number of nodes in this graph.
      Returns:
      the number of nodes in this graph.
    • areAdjacent

      boolean areAdjacent(T a, T b)
      Returns "true" iff the two nodes are connected by a directed edge from a to b or an undirected edge.
      Parameters:
      a - some node
      b - some node
      Returns:
      "true" iff the two nodes are connected by a directed edge from a to b or an undirected edge.
    • getEdge

      GeneralEdge<T> getEdge(T a, T b)
      Returns the corresponding edge (a,b) if a and b are adjacent. Otherwise it returns null.
      Parameters:
      a - some node
      b - some node
      Returns:
      the edge (a,b) or null.
    • getEdges

      Collection<? extends GeneralEdge<? extends T>> getEdges()
      Returns the edges of this graph.
      Specified by:
      getEdges in interface GeneralGraph<T extends Node>
      Returns:
      the edges of this graph.
    • iterator

      Iterator<T> iterator()
      Specified by:
      iterator in interface Iterable<T extends Node>
    • contains

      boolean contains(Object obj)
      Returns "true" when this graph contains the given node or edge.
      Parameters:
      obj - an object
      Returns:
      "true" if this graph contains the given node or edge.
    • getChildren

      Collection<T> getChildren(Node node)
      Returns the set of children (node connected via an undirected edge or a directed edge where the given node is the parent) of the given node.
      Parameters:
      node - some node (must be in the graph).
      Returns:
      the set of children of the given node.
    • getParents

      Collection<T> getParents(Node node)
      Returns the set of parents (node connected via an undirected edge or a directed edge where the given node is the child) of the given node.
      Parameters:
      node - some node (must be in the graph).
      Returns:
      the set of parents of the given node.
    • existsDirectedPath

      boolean existsDirectedPath(T node1, T node2)
      Checks whether there is a (directed) path from node1 to node2.
      Parameters:
      node1 - some node.
      node2 - some node.
      Returns:
      "true" if there is a directed path from node1 to node2.
    • getNeighbors

      Collection<T> getNeighbors(T node)
      Returns the set of neighbors of the given node.
      Parameters:
      node - some node (must be in the graph).
      Returns:
      the set of neighbors of the given node.
    • getAdjacencyMatrix

      Matrix getAdjacencyMatrix()
      Returns the adjacency matrix of this graph (the order of the nodes is the same as returned by "iterator()").
      Returns:
      the adjacency matrix of this graph
    • getComplementGraph

      Graph<T> getComplementGraph(int selfloops)
      Returns the complement graph of this graph, i.e. the graph on the same set of vertices as this graph that connects two vertices v and w with an edge if and only if v and w are not connected in this graph.
      Parameters:
      selfloops - Indicates how to deal with selfloops:
      IGNORE_SELFLOOPS - ignore self loops (don't add and don't remove)
      INVERT_SELFLOOPS - deal with self loops like ordinary edges (add if not present and remove if present)
      REMOVE_SELFLOOPS - simple remove self loops, but don't add new ones.
      Returns:
      the complement graph of this graph.
    • getStronglyConnectedComponents

      Collection<Collection<T>> getStronglyConnectedComponents()
      Returns the strongly connected components of this graph. A set of nodes is strongly connected, if there is a path from each node to each other. A set of nodes is called strongly connected component if it is strongly connected and maximal with respect to set inclusion.
      Returns:
      the strongly connected components of this graph.
    • getSubgraphs

      Collection<Graph<T>> getSubgraphs()
      Returns the set of sub graphs of this graph.
      Returns:
      the set of sub graphs of this graph.
    • hasSelfLoops

      boolean hasSelfLoops()
      Returns "true" iff the graph has a self loop (an edge from a node to itself).
      Returns:
      "true" iff the graph has a self loop (an edge from a node to itself).
    • isWeightedGraph

      boolean isWeightedGraph()
      Checks whether this graph only contains weighted edges.
      Returns:
      "true" if all edges are weighted in this graph.
    • toString

      String toString()
      Overrides:
      toString in class Object