Besuchermuster und Rekursion
-
06-09-2019 - |
Frage
Gibt es einen Vorteil für Besuchermuster in einem rekursiven Szenario? Wenn ja, können Sie es programmatisch demonstrieren?
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