문제
재귀 시나리오에서 방문자 패턴을 사용하는 이점이 있습니까? 그렇다면 프로그래밍 방식으로 시연 할 수 있습니까?
해결책
이진 트리를 가로 지르는 것은 어떻습니까? 예를 들어
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 () 메소드는 깨끗합니다.
제휴하지 않습니다 StackOverflow