Class Graph
- Direct Known Subclasses:
GraphArrayMatrix
Eine abstrakte Basisklasse als Grundlage zum Vererben für unterschiedliche Graph-Implementationen, z. B. eine Implementation eines Graphen durch eine Adjazenzmatrix oder durch eine Adjazenzliste. Diese Klasse wird auch als Datenbasis zum grafischen Zeichnen des Graphen verwendet.
- Since:
- 0.36.0
- Author:
- Josef Friedrich
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidEinfügen einer Kante in den Graphen.voidEinfügen einer Kante in den Graphen.voidEinfügen einer Kante in den Graphen.voidprotected abstract voidaddEdgeIntoDataStructure(String from, String to, int weight, boolean directed) Einfügen einer Kante in den Graphen.voidFügt einen neuen Knoten in den Graphen ein.voidFügt einen neuen Knoten in den Graphen ein.voidFügt eine Kopie des übergebenenGraphNode-Objekt dem Graphen hinzu.protected abstract voidaddNodeIntoDataStructure(String label, double x, double y) Fügt einen neuen Knoten in den Datenstruktur (z.edge(int index) Gibt die Kante anhand des Indexes zurück.intGibt die Anzahl der Kanten des Graphen zurück.edges()Gibt die Liste aller Kanten dieses Graphen zurück.Exportiert den Graphen, indem eine Zeichenkette generiert wird, die als Java-Code verwendet werden kann.voidimportGraph(Graph graph) Importiert alle Knoten und Kanten eines anderen Graphen.node(int index) intGibt die Anzahl der Knoten des Graphen zurück.intGibt den Index bzw . die interne Nummer des Knotens zurück.intintnodeIndexSafe(String label) Gibt den Index bzw. die interne Nummer des Knotens zurück oder-1falls der Knoten nicht gefunden werden konnte.nodeLabel(int index) Gibt die Bezeichnung eines Knotens mit der internen Knotennummer.Nodes()
-
Constructor Details
-
Graph
public Graph()
-
-
Method Details
-
importGraph
Importiert alle Knoten und Kanten eines anderen Graphen.- Parameters:
graph- Der Graph der importiert werden soll.
-
nodeCount
Gibt die Anzahl der Knoten des Graphen zurück.- Returns:
- Die Anzahl der Knoten.
-
edgeCount
Gibt die Anzahl der Kanten des Graphen zurück.- Returns:
- Die Anzahl der Kanten.
-
nodeIndex
Gibt den Index bzw . die interne Nummer des Knotens zurück.- Parameters:
label- Der Bezeichner des Knotens, der gesucht wird.- Returns:
- Die Indexnummer des Knotens im Knotenarray;
0 <= x <= anzahl-1 - Throws:
RuntimeException- Falls kein Knoten über den gegeben Bezeichner gefunden werden konnte.
-
nodeIndex
- Since:
- 0.37.0
-
nodeIndexSafe
Gibt den Index bzw. die interne Nummer des Knotens zurück oder-1falls der Knoten nicht gefunden werden konnte.- Parameters:
label- Der Bezeichner des Knotens, der gesucht wird.- Returns:
- Die Indexnummer des Knotens im Knotenarray;
0 <= x <= anzahl-1bzw.-1
-
node
-
node
-
nodeLabel
Gibt die Bezeichnung eines Knotens mit der internen Knotennummer.- Parameters:
index- Indexnummer des Knotens im Knotenarray;0 <= x <= anzahl-1- Returns:
- Der Bezeichner des Knotens.
-
addNodeIntoDataStructure
Fügt einen neuen Knoten in den Datenstruktur (z. B. Matrix oder Liste) der aktuellen Graph-Implementation ein.Diese Methode wird aufgerufen, wenn bereits ein neuer Knoten vom Datentyp
GraphNodeerzeugt wurde. Außerdem ist schon überprüft worden, ob der Bezeichner des Knotens eindeutig ist.- Parameters:
label- Der Bezeichner des neuen Knotens, der dem Graphen hinzugefügt wird.x- Die x-Koordinate des Knotens in Meter.y- Die y-Koordinate des Knotens in Meter.
-
addNode
Fügt einen neuen Knoten in den Graphen ein.- Parameters:
label- Der Bezeichner des neuen Knotens, der dem Graphen hinzugefügt wird.x- Die x-Koordinate des Knotens in Meter.y- Die y-Koordinate des Knotens in Meter.- Throws:
RuntimeException- Wenn die Bezeichnung des Knotens bereits existiert.
-
addNode
Fügt einen neuen Knoten in den Graphen ein.- Parameters:
label- Der Bezeichner des neuen Knotens, der dem Graphen hinzugefügt wird.- Throws:
RuntimeException- Wenn die Bezeichnung des Knotens bereits existiert.
-
addNode
Fügt eine Kopie des übergebenenGraphNode-Objekt dem Graphen hinzu.- Parameters:
node- der einzufügende Knoten; darf nichtnullsein- Throws:
NullPointerException- wennnodenullist- See Also:
-
addEdgeIntoDataStructure
protected abstract void addEdgeIntoDataStructure(String from, String to, int weight, boolean directed) Einfügen einer Kante in den Graphen.Die Kante ist durch einen Anfangsknoten und einen Endknoten festgelegt, hat eine Gewichtung und kann gerichtet sein.
- Parameters:
from- Der Bezeichner des Anfangsknotens.to- Der Bezeichner des Endknotens.weight- Die Gewichtung der Kante.directed- Ist die Kante gerichtet?
-
addEdge
Einfügen einer Kante in den Graphen.Die Kante ist durch einen Anfangsknoten und einen Endknoten festgelegt, hat eine Gewichtung und kann gerichtet sein.
- Parameters:
from- Der Bezeichner des Anfangsknotens.to- Der Bezeichner des Endknotens.weight- Die Gewichtung der Kante.directed- Ist die Kante gerichtet?
-
addEdge
Einfügen einer Kante in den Graphen.Die Kante ist durch einen Anfangsknoten, einen Endknoten festgelegt, hat eine Gewichtung und ist ungerichtet.
- Parameters:
from- Der Bezeichner des Anfangsknotens.to- Der Bezeichner des Endknotens.weight- Die Gewichtung der Kante.
-
addEdge
Einfügen einer Kante in den Graphen.Die Kante ist durch einen Anfangsknoten und einen Endknoten festgelegt, hat eine Gewichtung von 1 und ist ungerichtet.
- Parameters:
from- Der Bezeichner des Anfangsknotens.to- Der Bezeichner des Endknotens.
-
addEdge
-
Nodes
-
edge
Gibt die Kante anhand des Indexes zurück.- Parameters:
index- Der 0-basierte Index der gewünschten Kante.- Returns:
- Die Kante
- Throws:
IndexOutOfBoundsException- wenn der Index außerhalb des gültigen Bereichs liegt
-
edges
Gibt die Liste aller Kanten dieses Graphen zurück.- Returns:
- Die Liste aller Kanten dieses Graphen.
-
generateJavaCode
Exportiert den Graphen, indem eine Zeichenkette generiert wird, die als Java-Code verwendet werden kann.- Since:
- 0.37.0
-