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