Algorithmensammlung: Graphentheorie: Tiefensuche

Aus Wikibooks

Wechseln zu: Navigation, Suche

Algorithmensammlung: Graphentheorie

[Bearbeiten] Tiefensuche

Die Tiefensuche ist ein Suchverfahren zum Auffinden von Knoten in Graphen. Es geht dabei zunächst in die Tiefe, durchsucht also die verschiedenen adjazenten Knoten um den Startknoten zu mitunter sehr unterschiedlichen Zeitpunkten.

Für nähere Informationen siehe auch Wikipedia-logo.png Tiefensuche.

[Bearbeiten] Python

def tiefensuche(adj, start, suche, besucht=[]):
    # adj ist die Adjazenzliste {knoten: [kanten]}
    # start ist der Knoten, um die Suche zu beginnen
    # suche ist der gesuchte Knoten
    if start == suche:
        return True
    if adj[start]:
        for knoten in filter(lambda x: x not in besucht, adj[start]):
            besucht.append(knoten)
            if tiefensuche(adj, knoten, suche, besucht):
                return True
    return False
Persönliche Werkzeuge