Interface UndirectedGraph<V>

Type Parameters:
V - Knotentyp.
All Known Implementing Classes:
AdjacencyListUndirectedGraph

public interface UndirectedGraph<V>
Graph mit ungerichteten Kanten. Mit g.addEdge(v,w, weight) wird eine gerichtete Kante von v nach w mit dem Gewicht weight einfügt. Falls kein Gewicht angegeben wird, dann ist das Gewichte implizit auf 1 gesetzt. Der Graph einthält keine Mehrfachkanten.
Since:
22.03.2018
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    addEdge​(V v, V w)
    Fügt neue Kante (mit Gewicht 1) zum Graph dazu.
    boolean
    addEdge​(V v, V w, double weight)
    Fügt neue Kante mit Gewicht weight zum Graph dazu.
    boolean
    addVertex​(V v)
    Fügt neuen Knoten zum Graph dazu.
    boolean
    containsEdge​(V v, V w)
    Prüft ob Kante im Graph vorhanden ist.
    boolean
    Prüft ob Knoten v im Graph vorhanden ist.
    int
    getDegree​(V v)
    Liefert Grad des Knotens v zurück.
    Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Nachbarknoten von v zurück.
    int
    Liefert Anzahl der Kanten im Graph zurück.
    int
    Liefert Anzahl der Knoten im Graph zurück.
    Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Knoten im Graph zurück.
    double
    getWeight​(V v, V w)
    Liefert Gewicht der Kante zurück.
  • Method Details

    • addVertex

      boolean addVertex(V v)
      Fügt neuen Knoten zum Graph dazu.
      Parameters:
      v - Knoten
      Returns:
      true, falls Knoten noch nicht vorhanden war.
    • addEdge

      boolean addEdge(V v, V w)
      Fügt neue Kante (mit Gewicht 1) zum Graph dazu. Falls einer der beiden Knoten noch nicht im Graphen vorhanden ist, dann wird er dazugefügt. Falls die Kante schon vorhanden ist, dann wird das Gewicht mit 1 überschrieben.
      Parameters:
      v - Startknoten
      w - Zielknoten
      Returns:
      true, falls Kante noch nicht vorhanden war.
    • addEdge

      boolean addEdge(V v, V w, double weight)
      Fügt neue Kante mit Gewicht weight zum Graph dazu. Falls einer der beiden Knoten noch nicht im Graphen vorhanden ist, dann wird er dazugefügt. Falls die Kante schon vorhanden ist, dann wird das Gewicht mit weight überschrieben.
      Parameters:
      v - Startknoten
      w - Zielknoten
      weight - Gewicht
      Returns:
      true, falls Kante noch nicht vorhanden war.
    • containsVertex

      boolean containsVertex(V v)
      Prüft ob Knoten v im Graph vorhanden ist.
      Parameters:
      v - Knoten
      Returns:
      true, falls Knoten vorhanden ist.
    • containsEdge

      boolean containsEdge(V v, V w)
      Prüft ob Kante im Graph vorhanden ist.
      Parameters:
      v - Startknoten
      w - Endknoten
      Returns:
      true, falls Kante vorhanden ist.
    • getWeight

      double getWeight(V v, V w)
      Liefert Gewicht der Kante zurück.
      Parameters:
      v - Startknoten
      w - Endknoten
      Returns:
      Gewicht der Kante.
      Throws:
      IllegalArgumentException - falls die Kante nicht existiert.
    • getNumberOfVertexes

      int getNumberOfVertexes()
      Liefert Anzahl der Knoten im Graph zurück.
      Returns:
      Knotenzahl.
    • getNumberOfEdges

      int getNumberOfEdges()
      Liefert Anzahl der Kanten im Graph zurück.
      Returns:
      Kantenzahl.
    • getVertexSet

      Set<V> getVertexSet()
      Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Knoten im Graph zurück.
      Returns:
      Knotenmenge
    • getDegree

      int getDegree(V v)
      Liefert Grad des Knotens v zurück. Das ist die Anzahl der Nachbarknoten v.
      Parameters:
      v - Knoten
      Returns:
      Knoteneingangsgrad
      Throws:
      IllegalArgumentException - falls Knoten v nicht im Graph vorhanden ist.
    • getNeighborSet

      Set<V> getNeighborSet(V v)
      Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Nachbarknoten von v zurück.
      Parameters:
      v - Knoten
      Returns:
      Knotenmenge
      Throws:
      IllegalArgumentException - falls Knoten v nicht im Graph vorhanden ist.