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(…)