Einführung in den Graphentester

Hat ein gegebener Graph einen Eulerkreis?

Um entscheiden zu können, ob ein gegebener Graph einen Eulerkreis besitzt oder nicht, müssen wir zwei Kriterien überprüfen:

Alle Knotengrade müssen gerade sein

Der Graph muss zusammenhängen

Die Froschperspektive

Bei Algorithmen, die auf Graphen operieren, müssen wir einen Perspektivwechsel vornehmen: Wir sehen einen Graphen aus der "Vogelperspektive", d.h. wir nehmen den gesamten Graphen mit all seinen Knoten und Kanten wahr und lassen dann nur unsere Augen wandern - wenn uns eine Information fehlt, schauen wir einfach an die entscheidende Stelle und das Problem ist gelöst.

Wenn wir einen Graphen algorithmisch verarbeiten wollen, müssen wir schrittweise durch die Knotenanordnung wandern - wir sehen niemals weiter als bis zum Ende der nächsten Kante. Wir müssen also die Frosch-Perspektive einnehmen.

Überprüfung des Knoten-Grades

Setze gradOK auf true
Für jeden Knoten k:
Wenn Grad(k) ungerade, setze gradOK auf false

Überprüfung des Zusammenhangs

Aus der Vogelperspektive ist das sofort klar - dieser Graph hängt nicht zusammen:

Der Frosch ist allerdings etwas ratlos:

(A1)

Finde eine algorithmische Vorgehensweise, wie der Frosch herausfinden kann, ob der Graph zusammenhängend ist. Um dieses Ziel zu errreichen, hat der Frosch die folgenden Werkzeuge und Fähigkeiten zur Verfügung.

Der Frosch kann…

Knoten / Kanten markieren

Bei Knoten eine Zahl eintragen

Knoten einfärben

Alle Knoten der Reihe nach durchgehen

Einen beliebigen Knoten als Startknoten wählen

Zum Nachbarknoten springen

Eine ToDo-Liste noch zu bearbeitender Knoten anlegen

https://codeberg.org/qg-info-unterricht/zpg-graphentester