Frage

Gibt es einen Vorteil für Besuchermuster in einem rekursiven Szenario? Wenn ja, können Sie es programmatisch demonstrieren?

War es hilfreich?

Lösung

Wie wäre es einen binären Baum durchlaufen? z.B.

private class NodeVisitor{
 public void visit(VisitableNode<T> node){
    if (node!=null) {
       print node.data;
    }
 }
}



public class VisitableTree<T> {

  private VisitableNode<T> root;
  public void printNodes(){
    new NodeVisitor.visit(root);
  }

 private class VisitableNode<T> {
     T data;
     VisitableNode<T> left;
     VisitableNode<T> right; 
     public void visit(NodeVisitor<T> visitor){
       ..do something
       visitor.visit(left);
       visitor.visit(right);
    }
  }
}

Andere Tipps

Ich denke, der größte Vorteil ist, dass es nur Iterationen über Sammlungen 1 Ebene tief erfordert. Es kann zurückrufen, aber zumindest die accept () Methode sauber sein wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top