문제

재귀 시나리오에서 방문자 패턴을 사용하는 이점이 있습니까? 그렇다면 프로그래밍 방식으로 시연 할 수 있습니까?

도움이 되었습니까?

해결책

이진 트리를 가로 지르는 것은 어떻습니까? 예를 들어

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 () 메소드는 깨끗합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top