lundi 27 avril 2015

Iterator für trinären Baum

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 Code:

  1. public class TernaerTree<E> implements Iterable<E> {
  2.  
  3. private TernaerTree<E> left;
  4. private TernaerTree<E> center;
  5. private TernaerTree<E> right;
  6. private E value;
  7.  
  8.  
  9. public E getValue(){
  10. return value;
  11. }
  12.  
  13. public TernaerTree<E> getTree(){
  14. return this;
  15. }
  16.  
  17.  
  18.  
  19. public TernaerTree(TernaerTree<E> left, TernaerTree<E> center, TernaerTree<E> right, E value) {
  20. this.left = left;
  21. this.center = center;
  22. this.right = right;
  23. this.value = value;
  24. }
  25.  
  26.  
  27. @Override
  28. public Iterator<E> iterator() {
  29. return new WalkThroughIterator();
  30. }
  31.  
  32. class WalkThroughIterator implements Iterator<E> {
  33.  
  34.  
  35. @Override
  36. public boolean hasNext() {
  37. // TODO Auto-generated method stub
  38. return false;
  39. }
  40.  
  41.  
  42. @Override
  43. public E next() {
  44. // TODO Auto-generated method stub
  45. return null;
  46. }
  47.  
  48.  
  49. @Override
  50. public void remove() {
  51.  
  52. }
  53.  
  54. }
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. }


Iterator für trinären Baum

0 commentaires:

Enregistrer un commentaire