rekuriv geschachtelte Bäume in Collections

  • Hi Leute,

    habe eine Aufgabe für meine Klausurvorbereitung vor mir in der ich zwei Collections auf Gleichheit prüfen soll, die jeweils rekursiv geschachteltsind. D.h. sie enthalten beide Bäume.

    Mein Problem dabei ist erstmal schon das ich bisher nicht genau weiß, wie diese Collections denn in diesem speziellen Fall auszusehen haben.

    Evtl. könnte mir mal jemand mit einem einfachen Beispiel, bzw. eienr Erklärung, auf die Sprünmge helfen.

    Gruss
    Elland

  • Die Frage ist nicht wie ich die beiden Collections vergleiche, dass sollte machbar sein. Das einzige was ich mich Frage ist wie die Collections aufgebaut sind.

    # ( ( 3 ) # ( 5 9 ) #( 12 34 7 8)) wäre dies so sinnig?

    Jörg

  • Tolle Grafik hihi .. und was soll man darunter verstehen? Kommt auf die Notation drauf an wie du's hinschreiben möchtest.

    Wenn du die zwei lediglich vergleichen dann is ja eh einfach, läuft ab wie das durchlaufen eines Baumes nur dass du beide gleichzeitig (und gleich) durchläufst und die Knoten jeweils vergleichst.

  • Das einzige was ich mich Frage ist wie die Collections aufgebaut sind.


    Wenn du weißt, wie du zwei "flache" Collections vergleichst, dann wendest du dieses Wissen einfach rekursiv auf die Kinder an, und schon kannst du auch beliebig verschachtelte Collections vergleichen.

    Tolle Grafik hihi .. und was soll man darunter verstehen?


    Das sind geschachtelte Arrays in Smalltalk-Syntax. Java-Gurus müssen sowas nicht lesen können.

    *plantsch*

  • Die Frage ist nicht wie ich die beiden Collections vergleiche, dass sollte machbar sein. Das einzige was ich mich Frage ist wie die Collections aufgebaut sind.

    # ( ( 3 ) # ( 5 9 ) #( 12 34 7 8)) wäre dies so sinnig?

    Jörg

    Weil Deine Frage so noch nicht beantwortet wurde: Ja, so in etwa
    koennten die Collections aufgebaut sein: Listen, deren Kinder
    entweder weitere Listen (= subknoten) oder atomare Werte (=blaetter)
    enthalten koennen, bilden einen Baum und sind fuer Deine Aufgabe
    geeignet:

    (list 'erstesElementEbene1 'zweitesElementEbene1 (list 'erstesElementEbene2 'zweitesElementEbene2 (list 'erstesElementEbene3) ) 'viertesElementEbene1 )


    Und auch wenn Du nicht danach gefragt hast: Ein Algorithmus zum
    Vergleichen koennte z.B. wie folgt aussehen:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!