public class Graph
extends java.lang.Object
Materialien zu den zentralen NRW-Abiturpruefungen im Fach Informatik ab 2018
Klasse Graph
Die Klasse Graph stellt einen ungerichteten, kantengewichteten Graphen dar. Es koennen Knoten- und Kantenobjekte hinzugefuegt und entfernt, flache Kopien der Knoten- und Kantenlisten des Graphen angefragt und Markierungen von Knoten und Kanten gesetzt und ueberprueft werden. Des Weiteren kann eine Liste der Nachbarn eines bestimmten Knoten, eine Liste der inzidenten Kanten eines bestimmten Knoten und die Kante von einem bestimmten Knoten zu einem anderen bestimmten Knoten angefragt werden. Abgesehen davon kann abgefragt werden, welches Knotenobjekt zu einer bestimmten ID gehoert und ob der Graph leer ist.
Constructor and Description |
---|
Graph()
Ein Objekt vom Typ Graph wird erstellt.
|
Modifier and Type | Method and Description |
---|---|
void |
addEdge(Edge pEdge)
Der Auftrag fuegt die Kante pEdge in den Graphen ein, sofern beide durch die Kante verbundenen Knoten
im Graphen enthalten sind, nicht identisch sind und noch keine Kante zwischen den Knoten existiert.
|
void |
addVertex(Vertex pVertex)
Der Auftrag fuegt den Knoten pVertex in den Graphen ein, sofern es noch keinen
Knoten mit demselben ID-Eintrag wie pVertex im Graphen gibt und pVertex eine ID ungleich null hat.
|
boolean |
allEdgesMarked()
Die Anfrage liefert true, wenn alle Kanten des Graphen mit true markiert sind, ansonsten false.
|
boolean |
allVerticesMarked()
Die Anfrage liefert true, wenn alle Knoten des Graphen mit true markiert sind, ansonsten false.
|
Edge |
getEdge(Vertex pVertex,
Vertex pAnotherVertex)
Die Anfrage liefert die Kante, welche die Knoten pVertex und pAnotherVertex verbindet,
als Objekt vom Typ Edge.
|
List<Edge> |
getEdges()
Die Anfrage liefert eine neue Liste aller Kantenobjekte vom Typ List
|
List<Edge> |
getEdges(Vertex pVertex)
Die Anfrage liefert eine neue Liste alle inzidenten Kanten zum Knoten pVertex.
|
List<Vertex> |
getNeighbours(Vertex pVertex)
Die Anfrage liefert alle Nachbarn des Knotens pVertex als neue Liste vom Typ List
|
Vertex |
getVertex(java.lang.String pID)
Die Anfrage liefert das Knotenobjekt mit pID als ID.
|
List<Vertex> |
getVertices()
Die Anfrage liefert eine neue Liste aller Knotenobjekte vom Typ List
|
boolean |
isEmpty()
Die Anfrage liefert true, wenn der Graph keine Knoten enthaelt, ansonsten false.
|
void |
removeEdge(Edge pEdge)
Der Auftrag entfernt die Kante pEdge aus dem Graphen.
|
void |
removeVertex(Vertex pVertex)
Der Auftrag entfernt den Knoten pVertex aus dem Graphen und loescht alle Kanten, die mit ihm inzident sind.
|
void |
setAllEdgeMarks(boolean pMark)
Der Auftrag setzt die Markierungen aller Kanten des Graphen auf pMark.
|
void |
setAllVertexMarks(boolean pMark)
Der Auftrag setzt die Markierungen aller Knoten des Graphen auf pMark.
|
public Graph()
public List<Vertex> getVertices()
public List<Edge> getEdges()
public Vertex getVertex(java.lang.String pID)
public void addVertex(Vertex pVertex)
public void addEdge(Edge pEdge)
public void removeVertex(Vertex pVertex)
public void removeEdge(Edge pEdge)
public void setAllVertexMarks(boolean pMark)
public void setAllEdgeMarks(boolean pMark)
public boolean allVerticesMarked()
public boolean allEdgesMarked()
public List<Vertex> getNeighbours(Vertex pVertex)
public List<Edge> getEdges(Vertex pVertex)
public Edge getEdge(Vertex pVertex, Vertex pAnotherVertex)
public boolean isEmpty()