Class AdjacencyListUndirectedGraph<V>

java.lang.Object
undirectedGraph.AdjacencyListUndirectedGraph<V>
Type Parameters:
V - Knotentyp.
All Implemented Interfaces:
UndirectedGraph<V>

public class AdjacencyListUndirectedGraph<V> extends Object implements UndirectedGraph<V>
Implementierung von DirectedGraph mit einer doppelten TreeMap für die Nachfolgerknoten und einer einer doppelten TreeMap für die Vorgängerknoten.

Beachte: V muss vom Typ Comparable<V> sein.

Entspicht einer Adjazenzlisten-Implementierung mit schnellem Zugriff auf die Knoten.

Since:
19.03.2018
  • Constructor Details

    • AdjacencyListUndirectedGraph

      public AdjacencyListUndirectedGraph()
  • Method Details

    • addVertex

      public boolean addVertex(V v)
      Description copied from interface: UndirectedGraph
      Fügt neuen Knoten zum Graph dazu.
      Specified by:
      addVertex in interface UndirectedGraph<V>
      Parameters:
      v - Knoten
      Returns:
      true, falls Knoten noch nicht vorhanden war.
    • addEdge

      public boolean addEdge(V v, V w, double weight)
      Description copied from interface: UndirectedGraph
      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.
      Specified by:
      addEdge in interface UndirectedGraph<V>
      Parameters:
      v - Startknoten
      w - Zielknoten
      weight - Gewicht
      Returns:
      true, falls Kante noch nicht vorhanden war.
    • addEdge

      public boolean addEdge(V v, V w)
      Description copied from interface: UndirectedGraph
      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.
      Specified by:
      addEdge in interface UndirectedGraph<V>
      Parameters:
      v - Startknoten
      w - Zielknoten
      Returns:
      true, falls Kante noch nicht vorhanden war.
    • containsVertex

      public boolean containsVertex(V v)
      Description copied from interface: UndirectedGraph
      Prüft ob Knoten v im Graph vorhanden ist.
      Specified by:
      containsVertex in interface UndirectedGraph<V>
      Parameters:
      v - Knoten
      Returns:
      true, falls Knoten vorhanden ist.
    • containsEdge

      public boolean containsEdge(V v, V w)
      Description copied from interface: UndirectedGraph
      Prüft ob Kante im Graph vorhanden ist.
      Specified by:
      containsEdge in interface UndirectedGraph<V>
      Parameters:
      v - Startknoten
      w - Endknoten
      Returns:
      true, falls Kante vorhanden ist.
    • getWeight

      public double getWeight(V v, V w)
      Description copied from interface: UndirectedGraph
      Liefert Gewicht der Kante zurück.
      Specified by:
      getWeight in interface UndirectedGraph<V>
      Parameters:
      v - Startknoten
      w - Endknoten
      Returns:
      Gewicht der Kante.
    • getDegree

      public int getDegree(V v)
      Description copied from interface: UndirectedGraph
      Liefert Grad des Knotens v zurück. Das ist die Anzahl der Nachbarknoten v.
      Specified by:
      getDegree in interface UndirectedGraph<V>
      Parameters:
      v - Knoten
      Returns:
      Knoteneingangsgrad
    • getNeighborSet

      public Set<V> getNeighborSet(V v)
      Description copied from interface: UndirectedGraph
      Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Nachbarknoten von v zurück.
      Specified by:
      getNeighborSet in interface UndirectedGraph<V>
      Parameters:
      v - Knoten
      Returns:
      Knotenmenge
    • getNumberOfVertexes

      public int getNumberOfVertexes()
      Description copied from interface: UndirectedGraph
      Liefert Anzahl der Knoten im Graph zurück.
      Specified by:
      getNumberOfVertexes in interface UndirectedGraph<V>
      Returns:
      Knotenzahl.
    • getNumberOfEdges

      public int getNumberOfEdges()
      Description copied from interface: UndirectedGraph
      Liefert Anzahl der Kanten im Graph zurück.
      Specified by:
      getNumberOfEdges in interface UndirectedGraph<V>
      Returns:
      Kantenzahl.
    • getVertexSet

      public Set<V> getVertexSet()
      Description copied from interface: UndirectedGraph
      Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Knoten im Graph zurück.
      Specified by:
      getVertexSet in interface UndirectedGraph<V>
      Returns:
      Knotenmenge
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • main

      public static void main(String[] args)