jeudi 23 avril 2015
Collections Iterator und generischer Baum
Posted on 13:57 by verona
Guten Abend,
ich habe hier eine Klasse TernaerTree<E> geschrieben auf der ein Iterator laufen soll.
Der Baum ist im Prinzip eine Erweiterung des Binärbaums auf 3 Kindknoten, die durch eine rekursive Baumdefinition selbst wieder vom Typ TernaerTree<E> sind.
Nun komme ich bei den Methoden hasNext() und next() von Iterator durcheinander und weiß nicht so recht wie ich diese implementieren soll.
Der Iterator soll zunächst den linken Teilbaum, dann den mittleren Teilbaum, dann den rechten Teilbaum und zuletzt die Wurzel durchlaufen.
So ist in etwa meine Klasse für den Baum bisher:
Dies ist die noch etwas leere Klasse für den Iterator:
Wie man sieht habe ich für next() noch überhaupt keine Idee. Ich weiß, dass ich irgendwie rekutsiv mit den Teilbäumen arbeiten muss, aber nicht wie ich das anstellen soll.
Es wäre nett, wenn mir jemand helfen könnte, ohne fertigen Code zu liefern. Ich möchte nur wissen wie ich den Iterator implementieren muss. Das möchte ich jedoch alleine versuchen.
Danke für eure Hilfe.
ich habe hier eine Klasse TernaerTree<E> geschrieben auf der ein Iterator laufen soll.
Der Baum ist im Prinzip eine Erweiterung des Binärbaums auf 3 Kindknoten, die durch eine rekursive Baumdefinition selbst wieder vom Typ TernaerTree<E> sind.
Nun komme ich bei den Methoden hasNext() und next() von Iterator durcheinander und weiß nicht so recht wie ich diese implementieren soll.
Der Iterator soll zunächst den linken Teilbaum, dann den mittleren Teilbaum, dann den rechten Teilbaum und zuletzt die Wurzel durchlaufen.
So ist in etwa meine Klasse für den Baum bisher:
Java Code:
-
public class TernaerTree<E> {
-
-
TernaerTree<E> root;
-
-
private TernaerTree<E> left;
-
private TernaerTree<E> mid;
-
private TernaerTree<E> right;
-
private E value;
-
-
public E getValue() {
-
return value;
-
}
-
-
public TernaerTree<E> getTree(){
-
return this;
-
}
-
-
TernaerTree(TernaerTree<E> left,TernaerTree<E> mid, TernaerTree<E> right, E value) {
-
this.left = left;
-
this.mid = mid;
-
this.right = right;
-
this.value = value;
-
}
-
-
-
-
-
public Iterator<E> iterator() {
-
return new WalkThroughIterator();
-
}
Dies ist die noch etwas leere Klasse für den Iterator:
Java Code:
-
class WalkThroughIterator implements Iterator<E> {
-
-
Iterator<E> baumIt = root.iterator();
-
-
-
@Override
-
public boolean hasNext() {
-
-
-
if (root != null) {
-
return true;
-
}
-
else {
-
return false;
-
}
-
-
}
-
-
-
@Override
-
public E next() {
-
//TODO
-
return root.getValue();
-
}
-
-
-
@Override
-
public void remove() {
-
-
}
-
-
}
Wie man sieht habe ich für next() noch überhaupt keine Idee. Ich weiß, dass ich irgendwie rekutsiv mit den Teilbäumen arbeiten muss, aber nicht wie ich das anstellen soll.
Es wäre nett, wenn mir jemand helfen könnte, ohne fertigen Code zu liefern. Ich möchte nur wissen wie ich den Iterator implementieren muss. Das möchte ich jedoch alleine versuchen.
Danke für eure Hilfe.
Collections Iterator und generischer Baum
Categories: Collections Iterator und generischer Baum
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire