Collections Rot-Schwarz-Baum, der von AbstractCollection<E> erbt - Wie implementiere ich hier einen Iterator?

Shiftz

Neues Mitglied
Hey!

Ich habe u.a. folgende Aufgabe bekommen:
http://imgur.com/q1aafmK

Mein Problem ergibt sich bei der Implementation eines Iterators - laut Aufgabe soll ich ja zwei Iterator-Klassen schreiben, die java.util.Iterator implementieren. Mir ist nur komplett schleierhaft, wie ich in diesem Iterator dann dem Compiler sagen soll, wie er meinen Baum zu durchlaufen hat (der ist momentan so linked-list-mäßig mit einer Extra-Klasse Knoten implementiert). Ich habe erst versucht, meinen Rot-Schwarz-Baum mit Wurzel usw. direkt im Konstruktor meines In-Order-Iterators zu übergeben, sodass ich Zugriff auf die Wurzel und damit auf die Struktur meines Baumes habe - aber da der Rot-Schwarz-Baum von AbstractCollection erbt und ich die abstrakte Methode iterator() überschreiben soll darf ich da meinen Baum ja nicht übergeben (abstrakte Methoden dürfen keinen Körper haben laut Compiler und somit kann ich ja auch schlecht was übergeben).
Wenn mir einer ganz kurz erklären könnte, wie ich die "Schnittstelle" zwischen meiner Iterator-Klasse und dem Baum hinkrieg, wäre ich super dankbar ;)

Vielen Dank
Tim
 

mrBrown

Super-Moderator
Mitarbeiter
Du kannst innerhalb von iterator an deine Klassen übergeben was du willst.

Wenn du deinen eigenen Iterator schon hast, kannst du dem in iterator() erstellen und deinen Baum übergeben, da hindert dich doch nichts dran.
Vllt versteh ich das Problem aber grad auch falsch...
 

Shiftz

Neues Mitglied
Mein Problem ist eher, dass ich ja eine Klasse RedBlackTree hab und dazu jetzt noch separat zwei Iterator-Klassen schreiben soll - Wie "sage ich" meinem Iterator, wie er meinen Baum durchläuft? Da das zwei unterschiedliche Klassen sind und ich den Baum auch nicht an den Iterator übergeben kann, sollte doch der Iterator an sich keinen Zugriff darauf haben, oder? Der Baum besteht aus einem static-Knoten "wurzel", an den ich alle anderen nach dem Binärbaum-Prinzip anhänge. Zusätzlich kennt jeder Knoten noch seinen "Vaterknoten".

Aber danke schonmal für die Antwort! :)
 

mrBrown

Super-Moderator
Mitarbeiter
Warum solltest du den Baum nicht dem Integrator übergeben können?

Kannst du mal Code zeigen? Wenn dein Wurzelknoten static ist, hört sich das nach einem Designfehler an...
 

Neue Themen


Oben