Package directedGraph

Klasse AdjacencyListDirectedGraph<V>

java.lang.Object
directedGraph.AdjacencyListDirectedGraph<V>
Typparameter:
V - Knotentyp.
Alle implementierten Schnittstellen:
DirectedGraph<V>

public class AdjacencyListDirectedGraph<V> extends Object implements DirectedGraph<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.

Seit:
1.8.2023
  • Konstruktordetails

    • AdjacencyListDirectedGraph

      public AdjacencyListDirectedGraph()
  • Methodendetails

    • addVertex

      public boolean addVertex(V v)
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      Fügt neuen Knoten zum Graph dazu.
      Angegeben von:
      addVertex in Schnittstelle DirectedGraph<V>
      Parameter:
      v - Knoten
      Gibt zurück:
      true, falls Knoten noch nicht vorhanden war.
    • addEdge

      public boolean addEdge(V v, V w, double weight)
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      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.
      Angegeben von:
      addEdge in Schnittstelle DirectedGraph<V>
      Parameter:
      v - Startknoten
      w - Zielknoten
      weight - Gewicht
      Gibt zurück:
      true, falls Kante noch nicht vorhanden war.
    • addEdge

      public boolean addEdge(V v, V w)
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      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.
      Angegeben von:
      addEdge in Schnittstelle DirectedGraph<V>
      Parameter:
      v - Startknoten
      w - Zielknoten
      Gibt zurück:
      true, falls Kante noch nicht vorhanden war.
    • containsVertex

      public boolean containsVertex(V v)
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      Prüft ob Knoten v im Graph vorhanden ist.
      Angegeben von:
      containsVertex in Schnittstelle DirectedGraph<V>
      Parameter:
      v - Knoten
      Gibt zurück:
      true, falls Knoten vorhanden ist.
    • containsEdge

      public boolean containsEdge(V v, V w)
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      Prüft ob Kante im Graph vorhanden ist.
      Angegeben von:
      containsEdge in Schnittstelle DirectedGraph<V>
      Parameter:
      v - Startknoten
      w - Endknoten
      Gibt zurück:
      true, falls Kante vorhanden ist.
    • getWeight

      public double getWeight(V v, V w)
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      Liefert Gewicht der Kante zurück.
      Angegeben von:
      getWeight in Schnittstelle DirectedGraph<V>
      Parameter:
      v - Startknoten
      w - Endknoten
      Gibt zurück:
      Gewicht der Kante.
    • getInDegree

      public int getInDegree(V v)
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      Liefert Eingangsgrad des Knotens v zurück. Das ist die Anzahl der Kanten mit Zielknoten v.
      Angegeben von:
      getInDegree in Schnittstelle DirectedGraph<V>
      Parameter:
      v - Knoten
      Gibt zurück:
      Knoteneingangsgrad
    • getOutDegree

      public int getOutDegree(V v)
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      Liefert Ausgangsgrad des Knotens v zurück. Das ist die Anzahl der Kanten mit Quellknoten v.
      Angegeben von:
      getOutDegree in Schnittstelle DirectedGraph<V>
      Parameter:
      v - Knoten
      Gibt zurück:
      Knotenausgangsgrad
    • getPredecessorVertexSet

      public Set<V> getPredecessorVertexSet(V v)
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Vorgängerknoten von v zurück. Das sind alle die Knoten, von denen eine Kante zu v führt.
      Angegeben von:
      getPredecessorVertexSet in Schnittstelle DirectedGraph<V>
      Parameter:
      v - Knoten
      Gibt zurück:
      Knotenmenge
    • getSuccessorVertexSet

      public Set<V> getSuccessorVertexSet(V v)
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Nachfolgerknoten von v zurück. Das sind alle die Knoten, zu denen eine Kante von v führt.
      Angegeben von:
      getSuccessorVertexSet in Schnittstelle DirectedGraph<V>
      Parameter:
      v - Knoten
      Gibt zurück:
      Knotenmenge
    • getNumberOfVertexes

      public int getNumberOfVertexes()
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      Liefert Anzahl der Knoten im Graph zurück.
      Angegeben von:
      getNumberOfVertexes in Schnittstelle DirectedGraph<V>
      Gibt zurück:
      Knotenzahl.
    • getNumberOfEdges

      public int getNumberOfEdges()
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      Liefert Anzahl der Kanten im Graph zurück.
      Angegeben von:
      getNumberOfEdges in Schnittstelle DirectedGraph<V>
      Gibt zurück:
      Kantenzahl.
    • getVertexSet

      public Set<V> getVertexSet()
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Knoten im Graph zurück.
      Angegeben von:
      getVertexSet in Schnittstelle DirectedGraph<V>
      Gibt zurück:
      Knotenmenge
    • invert

      public DirectedGraph<V> invert()
      Beschreibung aus Schnittstelle kopiert: DirectedGraph
      Erzeugt einen invertierten Graphen, indem jede Kante dieses Graphens in umgekehrter Richtung abgespeichert wird.
      Angegeben von:
      invert in Schnittstelle DirectedGraph<V>
      Gibt zurück:
      invertierter Graph
    • toString

      public String toString()
      Setzt außer Kraft:
      toString in Klasse Object
    • main

      public static void main(String[] args)