Don P: In komplexer Datenstruktur suchen

Beitrag lesen

Hallo Patrick,

von 'marge' (Mutter von 'bart', Frau von 'homer') ausgehend, wie erhalte ich die ganze Familie? Z.B.:

'marge' (wife, 37) is member of 'simpsons'. Other members are: 'homer' (husband, 34), 'bart' (kid, 11)

Ich habe den Eindruck, dass es ohne komplexere Funktion nicht geht, und eben da fehlt mir der Denkschubs ;)

Mal rein logisch betrachtet scheint es mir auch unmöglich, dass eine einfache und allgemeine rekursive Funktion das leisten kann, was du anscheinend vorhast.

Wenn z.B. nach gefundener 'marge' auch die anderen members der simpsons ausgegeben werden sollen, dann müssten konsquenterweise (im vorhergehenden Rekursionsschritt) nach dem inzwischen wegen 'marge' gefundenen key "members" auch die anderen Geschwister dieser members ausgegeben werden, nämlich "series" und "nights", und dann wiederum (auch wieder im vorhergehenden Rekursionsschritt) die anderen Geschwister der gefundenen simpsons, also "flintstones" und "jetsons".

Wenn die Datenstruktur eine beliebig tiefe und beliebig strukturierte Verschachtelung von Arrays und Hashes sein kann – es ist ja immer eine Baumstruktur – dann kannst du von einer einfachen rekrusiven Funktion nicht mehr erwarten als etwa "marge ist der name eines members der simpsons", oder "800 ist ein age eines members der simpsons", oder auch "thursday ist ein nights der flintstones".

Da du anscheinend aber in Abhängigkeit von der Rekursionstiefe und womöglich auch sonstwie in Abhängigkeit von der Art der gefundenen Daten manchmal auch Geschwister und sogar deren Kinder ausgeben willst ("Other members are: 'homer' (husband, 34)..."), muss das zwangsläufig zu einem komplizierteren Algorithums führen, der dann wohl nicht mehr allgemein für jede solche Datenstruktur angewendet werden kann, mal ganz abgesehen von den grammatikalischen Schwierigkeiten, die dann für die Ausgabe entstehen ;-)

Gruß, Don P