Class 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.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Graph

        public Graph()
        Ein Objekt vom Typ Graph wird erstellt. Der von diesem Objekt repraesentierte Graph ist leer.
    • 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.