Package directedGraph
Class AdjacencyListDirectedGraph<V>
java.lang.Object
directedGraph.AdjacencyListDirectedGraph<V>
- Type Parameters:
V
- Knotentyp.
- All Implemented Interfaces:
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.
- Since:
- 1.8.2023
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
Fügt neue Kante (mit Gewicht 1) zum Graph dazu.boolean
Fügt neue Kante mit Gewicht weight zum Graph dazu.boolean
Fügt neuen Knoten zum Graph dazu.boolean
containsEdge(V v, V w)
Prüft ob Kante im Graph vorhanden ist.boolean
containsVertex(V v)
Prüft ob Knoten v im Graph vorhanden ist.int
getInDegree(V v)
Liefert Eingangsgrad des Knotens v zurück.int
Liefert Anzahl der Kanten im Graph zurück.int
Liefert Anzahl der Knoten im Graph zurück.int
getOutDegree(V v)
Liefert Ausgangsgrad des Knotens v zurück.Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Vorgängerknoten von v zurück.Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Nachfolgerknoten von v zurück.Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Knoten im Graph zurück.double
Liefert Gewicht der Kante zurück.invert()
Erzeugt einen invertierten Graphen, indem jede Kante dieses Graphens in umgekehrter Richtung abgespeichert wird.static void
toString()
-
Constructor Details
-
AdjacencyListDirectedGraph
public AdjacencyListDirectedGraph()
-
-
Method Details
-
addVertex
Description copied from interface:DirectedGraph
Fügt neuen Knoten zum Graph dazu.- Specified by:
addVertex
in interfaceDirectedGraph<V>
- Parameters:
v
- Knoten- Returns:
- true, falls Knoten noch nicht vorhanden war.
-
addEdge
Description copied from interface: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.- Specified by:
addEdge
in interfaceDirectedGraph<V>
- Parameters:
v
- Startknotenw
- Zielknotenweight
- Gewicht- Returns:
- true, falls Kante noch nicht vorhanden war.
-
addEdge
Description copied from interface: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.- Specified by:
addEdge
in interfaceDirectedGraph<V>
- Parameters:
v
- Startknotenw
- Zielknoten- Returns:
- true, falls Kante noch nicht vorhanden war.
-
containsVertex
Description copied from interface:DirectedGraph
Prüft ob Knoten v im Graph vorhanden ist.- Specified by:
containsVertex
in interfaceDirectedGraph<V>
- Parameters:
v
- Knoten- Returns:
- true, falls Knoten vorhanden ist.
-
containsEdge
Description copied from interface:DirectedGraph
Prüft ob Kante im Graph vorhanden ist.- Specified by:
containsEdge
in interfaceDirectedGraph<V>
- Parameters:
v
- Startknotenw
- Endknoten- Returns:
- true, falls Kante vorhanden ist.
-
getWeight
Description copied from interface:DirectedGraph
Liefert Gewicht der Kante zurück.- Specified by:
getWeight
in interfaceDirectedGraph<V>
- Parameters:
v
- Startknotenw
- Endknoten- Returns:
- Gewicht der Kante.
-
getInDegree
Description copied from interface:DirectedGraph
Liefert Eingangsgrad des Knotens v zurück. Das ist die Anzahl der Kanten mit Zielknoten v.- Specified by:
getInDegree
in interfaceDirectedGraph<V>
- Parameters:
v
- Knoten- Returns:
- Knoteneingangsgrad
-
getOutDegree
Description copied from interface:DirectedGraph
Liefert Ausgangsgrad des Knotens v zurück. Das ist die Anzahl der Kanten mit Quellknoten v.- Specified by:
getOutDegree
in interfaceDirectedGraph<V>
- Parameters:
v
- Knoten- Returns:
- Knotenausgangsgrad
-
getPredecessorVertexSet
Description copied from interface: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.- Specified by:
getPredecessorVertexSet
in interfaceDirectedGraph<V>
- Parameters:
v
- Knoten- Returns:
- Knotenmenge
-
getSuccessorVertexSet
Description copied from interface: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.- Specified by:
getSuccessorVertexSet
in interfaceDirectedGraph<V>
- Parameters:
v
- Knoten- Returns:
- Knotenmenge
-
getNumberOfVertexes
public int getNumberOfVertexes()Description copied from interface:DirectedGraph
Liefert Anzahl der Knoten im Graph zurück.- Specified by:
getNumberOfVertexes
in interfaceDirectedGraph<V>
- Returns:
- Knotenzahl.
-
getNumberOfEdges
public int getNumberOfEdges()Description copied from interface:DirectedGraph
Liefert Anzahl der Kanten im Graph zurück.- Specified by:
getNumberOfEdges
in interfaceDirectedGraph<V>
- Returns:
- Kantenzahl.
-
getVertexSet
Description copied from interface:DirectedGraph
Liefert eine nicht modifizierbare Sicht (unmodifiable view) auf die Menge aller Knoten im Graph zurück.- Specified by:
getVertexSet
in interfaceDirectedGraph<V>
- Returns:
- Knotenmenge
-
invert
Description copied from interface:DirectedGraph
Erzeugt einen invertierten Graphen, indem jede Kante dieses Graphens in umgekehrter Richtung abgespeichert wird.- Specified by:
invert
in interfaceDirectedGraph<V>
- Returns:
- invertierter Graph
-
toString
-
main
-