2
在递归场景中使用访问者模式有什么优势吗?如果是的话,你可以通过编程来演示它吗访问者模式和递归
在递归场景中使用访问者模式有什么优势吗?如果是的话,你可以通过编程来演示它吗访问者模式和递归
如何遍历二叉树?例如
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);
}
}
}
我认为主要好处是它只需要迭代超过集合1级深度。它可以回调,但至少accept()方法是干净的。
这是真的递归吗?我要么失去了一些东西,要么不是。我想你想(在你的VisitNode类)visitor.visit(this);然后你调用this.visit(左)(和右)。见[此链接](http://cs.lmu.edu/~ray/notes/binarytrees/)。 – javamonkey79 2014-11-05 23:16:07