Die Suche ergab 5 Treffer

von beQSwa
Mittwoch 31. August 2022, 17:24
Forum: Allgemeine Fragen
Thema: Baum rekursiv durchlaufen
Antworten: 9
Zugriffe: 1442

Re: Baum rekursiv durchlaufen

Puh, vielen Dank! :-)
Das war genau was ich mir gewünscht hatte: Eine Python-Typische, elegante Lösung für mein Problem - wenn auch eine sehr anspruchsvolle.

Warum Python nach dem "Return" nicht einfach in der aufrufenden Schleife weiter macht wo es vor der Iteration stehen blieb habe ich noch ...
von beQSwa
Mittwoch 31. August 2022, 16:31
Forum: Allgemeine Fragen
Thema: Baum rekursiv durchlaufen
Antworten: 9
Zugriffe: 1442

Re: Baum rekursiv durchlaufen

Meinst du das mit dem Path so?
def nextchild(obj, path):
print("call for ",obj.name)
path.append(obj.name)
if (obj.children):
print(" got child")
for child in obj.children:
print (" name: ",child.name)
if (input()!=""):break
return nextchild(child)
else:
print("PATH: ", path)
path=path ...
von beQSwa
Mittwoch 31. August 2022, 16:27
Forum: Allgemeine Fragen
Thema: Baum rekursiv durchlaufen
Antworten: 9
Zugriffe: 1442

Re: Baum rekursiv durchlaufen

Das mit dem Pfad als Parameter ist mir noch nicht ganz klar. Kannst du mir da mit ein zwei Zeilen Code auf die Sprünge helfen?
So wie ich die Ausgabe interpretiere läuft der Algorithmus folgenden Weg:
A --> B --> D
wenn also jeder Aufruf eine Zeile CSV ausgibt hätte ich drei Zeilen:
A
A,B
A,B,D

mir ...
von beQSwa
Mittwoch 31. August 2022, 16:13
Forum: Allgemeine Fragen
Thema: Baum rekursiv durchlaufen
Antworten: 9
Zugriffe: 1442

Re: Baum rekursiv durchlaufen


Alles was es da doch braucht ist ein Argument "path" an nextchild, das per default der leere String ist. Und jeder Aufruf an nextchild fuegt dem einfach den akutellen obj.name hinzu, und reicht den weiter runter. Im Rekursionsbeginn (else-Zweig) kannst du dann den ganzen Pfad ausgeben.


Das mit ...
von beQSwa
Mittwoch 31. August 2022, 15:26
Forum: Allgemeine Fragen
Thema: Baum rekursiv durchlaufen
Antworten: 9
Zugriffe: 1442

Baum rekursiv durchlaufen

Hallo,

als Python-Neuling versuche ich mich gerade an einer rekursiven Funktion zum Durchlaufen eines Baumes:

Ich habe einen Baum aus Objekten der selben Klasse. Jeder Knoten des Baumes kann keine oder beliebig viele Unterknoten aufweisen.
Diesen Baum möchte ich als CSV exportieren. Dazu muss ich ...