Package abiturklassen.graph
Class Graph
- java.lang.Object
-
- abiturklassen.graph.Graph
-
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.
- Version:
- Juni 2015
- Author:
- Qualitaets- und UnterstuetzungsAgentur - Landesinstitut fuer Schule, Materialien zum schulinternen Lehrplan Informatik SII
-
-
Constructor Summary
Constructors Constructor Description Graph()
Ein Objekt vom Typ Graph wird erstellt.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.
-
-
-
Method Detail
-
getVertices
public List<Vertex> getVertices()
Die Anfrage liefert eine neue Liste aller Knotenobjekte vom Typ List.
-
getEdges
public List<Edge> getEdges()
Die Anfrage liefert eine neue Liste aller Kantenobjekte vom Typ List.
-
getVertex
public Vertex getVertex(java.lang.String pID)
Die Anfrage liefert das Knotenobjekt mit pID als ID. Ist ein solchen Knotenobjekt nicht im Graphen enthalten, wird null zurueckgeliefert.
-
addVertex
public 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. Ansonsten passiert nichts.
-
addEdge
public 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. Ansonsten passiert nichts.
-
removeVertex
public void removeVertex(Vertex pVertex)
Der Auftrag entfernt den Knoten pVertex aus dem Graphen und loescht alle Kanten, die mit ihm inzident sind. Ist der Knoten pVertex nicht im Graphen enthalten, passiert nichts.
-
removeEdge
public void removeEdge(Edge pEdge)
Der Auftrag entfernt die Kante pEdge aus dem Graphen. Ist die Kante pEdge nicht im Graphen enthalten, passiert nichts.
-
setAllVertexMarks
public void setAllVertexMarks(boolean pMark)
Der Auftrag setzt die Markierungen aller Knoten des Graphen auf pMark.
-
setAllEdgeMarks
public void setAllEdgeMarks(boolean pMark)
Der Auftrag setzt die Markierungen aller Kanten des Graphen auf pMark.
-
allVerticesMarked
public boolean allVerticesMarked()
Die Anfrage liefert true, wenn alle Knoten des Graphen mit true markiert sind, ansonsten false.
-
allEdgesMarked
public boolean allEdgesMarked()
Die Anfrage liefert true, wenn alle Kanten des Graphen mit true markiert sind, ansonsten false.
-
getNeighbours
public List<Vertex> getNeighbours(Vertex pVertex)
Die Anfrage liefert alle Nachbarn des Knotens pVertex als neue Liste vom Typ List. Hat der Knoten pVertex keine Nachbarn in diesem Graphen oder ist gar nicht in diesem Graphen enthalten, so wird eine leere Liste zurueckgeliefert.
-
getEdges
public List<Edge> getEdges(Vertex pVertex)
Die Anfrage liefert eine neue Liste alle inzidenten Kanten zum Knoten pVertex. Hat der Knoten pVertex keine inzidenten Kanten in diesem Graphen oder ist gar nicht in diesem Graphen enthalten, so wird eine leere Liste zurueckgeliefert.
-
getEdge
public Edge getEdge(Vertex pVertex, Vertex pAnotherVertex)
Die Anfrage liefert die Kante, welche die Knoten pVertex und pAnotherVertex verbindet, als Objekt vom Typ Edge. Ist der Knoten pVertex oder der Knoten pAnotherVertex nicht im Graphen enthalten oder gibt es keine Kante, die beide Knoten verbindet, so wird null zurueckgeliefert.
-
isEmpty
public boolean isEmpty()
Die Anfrage liefert true, wenn der Graph keine Knoten enthaelt, ansonsten false.
-
-