Guten Abend zusammen,
hab mal wieder eine Frage.
Hab nem Binärbaum programmiert (bzw. bin dabei), der zum Speichern von Objects dient.
Um jetzt mit der Methode getSize() die größe bzw Anzahl der Elemente des Baumes rausfinden, hab ich mir das so gedacht:
Ich beginne bei der Wurzel und gehe immer den "rechtesten" Weg, sollte es zwei Abzweigungen geben, speichere ich den Knoten auf einem Stack und gehe den rechten Weg. Irgendwann bin ich damit, ganz unten gelandet. Dann gehe ich nach oben jeweils zu einem "Vater" des Knotens und vergleiche ob er der das oberste Element am Stack ist:
Wenn ja, geh ich den Linken Zweig nach unten
Wenn nicht, dann geh ich zu dessen Vater
dies wird solange gemacht bis ich beim Wurzelknoten wieder angelangt bin und auch der Stack leer ist.
Ist der Gedankenansatz richtig, oder mach ich das viel zu kompliziert?
hab mal wieder eine Frage.
Hab nem Binärbaum programmiert (bzw. bin dabei), der zum Speichern von Objects dient.
Um jetzt mit der Methode getSize() die größe bzw Anzahl der Elemente des Baumes rausfinden, hab ich mir das so gedacht:
Ich beginne bei der Wurzel und gehe immer den "rechtesten" Weg, sollte es zwei Abzweigungen geben, speichere ich den Knoten auf einem Stack und gehe den rechten Weg. Irgendwann bin ich damit, ganz unten gelandet. Dann gehe ich nach oben jeweils zu einem "Vater" des Knotens und vergleiche ob er der das oberste Element am Stack ist:
Wenn ja, geh ich den Linken Zweig nach unten
Wenn nicht, dann geh ich zu dessen Vater
dies wird solange gemacht bis ich beim Wurzelknoten wieder angelangt bin und auch der Stack leer ist.
Ist der Gedankenansatz richtig, oder mach ich das viel zu kompliziert?