faecher:informatik:oberstufe:graphen:zpg:hilfekarten:start

Dies ist eine alte Version des Dokuments!


Hilfestellung zur Programmierung mit dem Graphentester

Aktion auf allen Knoten/Kanten

Soll der Algorithmus mit allen Knoten des Graphen etwas Bestimmtes machen, dann verwendet man die Methode getAlleKnoten() bzw. getAlleKanten() des Objekts g (Klasse Graph):

// Eine Liste aller Knoten anfordern
List<Knoten> alleKnoten = g.getAlleKnoten();
 
// Schleife über alle Knoten der Liste
for (Knoten aktuellerKnoten: alleKnoten) {
   // mache etwas mit dem aktuellen Knoten, z.B. markieren
   aktuellerKnoten.setMarkiert(true);
   // Ausführung unterbrechen
   step();Hilfestellung zur Programmierung mit dem Graphentester
}

Aktion auf bestimmten Knoten/Kanten

Soll der Algorithmus mit bestimmten Knoten/Kanten des Graphen etwas bestimmtes machen, dann holt man sich eine Liste aller Knoten/Kanten, die einer Bedingung genügen. Diese Bedingung kann als Prädikat, d.h. einem Lambda-Ausdruck, der true oder false zurück liefert, angegeben werden.

// Eine Liste aller markierten Knoten anfordern
List<Knoten> markierteKnoten = g.getAlleKnoten(k->k.isMarkiert());
 
// Schleife über alle Knoten der Liste
for (Knoten aktuellerKnoten: markierteKnoten ) {
   // mache etwas mit dem aktuellen Knoten, z.B. Markierung löschen
   aktuellerKnoten.setMarkiert(false);
   // Ausführung unterbrechen
   step();
}

Diese Beschränkung auf eine Teilmenge mittels eines Lambda-Ausdrucks funktioniert auch bei den Methoden:

  • getAlleKanten(…)
  • getAusgehendeKanten(…)
  • getEingehendeKanten(…)
  • getNachbarknoten(…)
  • faecher/informatik/oberstufe/graphen/zpg/hilfekarten/start.1668444153.txt.gz
  • Zuletzt geändert: 14.11.2022 17:42
  • von Frank Schiebel