Iterator für trinären Baum

m11

Mitglied
Guten Abend,

ich muss einen Iterator für einen trinären, generischen Baum implementieren. Jeder Baum hat einen Value vom Typ E und 3 Kinder (left, center, right), die selbst wiederum trinäre Bäume sind.
Der Iterator soll rekursiv die Iteratoren der Teilbäume verwenden und dabei zuerst den linken Teilbaum, den mittleren Teilbaum, den rechten Teilbaum und dann den Knoten selbst ablaufen. Wie kann ich da rangehen? Als Tipp wurde mir gegeben, dass es sinnvoll wäre, wenn jeder Iterator eine Liste der "Kinditeratoren" hätte, die man dann abarbeiten kann.

Meine Klasse sieht bisher so aus:

Java:
public class TernaerTree<E> implements Iterable<E>    {    
    
    private TernaerTree<E> left;
    private TernaerTree<E> center;
    private TernaerTree<E> right;
    private E value;


    public E getValue(){
        return value;
    }
    
    public TernaerTree<E> getTree(){
        return this;
    }
    


    public TernaerTree(TernaerTree<E> left, TernaerTree<E> center, TernaerTree<E>         right, E value) {
        this.left = left;
        this.center = center;
        this.right = right;
        this.value = value;
    }


    @Override
    public Iterator<E> iterator() {
        return new WalkThroughIterator();
    }
    
    class WalkThroughIterator implements Iterator<E> {


        @Override
        public boolean hasNext() {
            // TODO Auto-generated method stub
            return false;
        }


        @Override
        public E next() {
            // TODO Auto-generated method stub
            return null;
        }


        @Override
        public void remove() {
            throw new UnsupportedOperationException();
            
        }
        
    }
    
    
    
    


}
 

Zurück
Oben