2013-02-06 2 views
0

재귀적인 검색이 필요합니다. gwt를 사용하고 있으며 기본적으로 gwt 트리의 노드를 검색하려고합니다. 여기에 제 코드가 있습니다. 재귀 :-(잘하지 advance.I'm 감사드립니다트리에서 노드를 검색하는 GWT

public TreeItem search2(String sName, TreeItem node){ 
    TreeItem treeItem=null; 
    String sValue =""; 
    boolean bFound=false; 

    System.out.println("Father Node:" + node.getText() + " child nodes:" + node.getChildCount()); 


    for (int i=0;i<node.getChildCount();i++){ 

     treeItem = node.getChild(i); 
     sValue = treeItem.getText(); 
     System.out.println("searching...."+sValue); 
     if (sValue.equalsIgnoreCase(sName)){ 
      bFound=true; 
      System.out.println("!!found!!!!"+sName + " node to return:" + treeItem.getText()); 
      return treeItem; 
     } 
     else { 
      return search2(sName,treeItem); 
     } 
    }    

    return treeItem; 

} 
+1

어떤 결과가 나타 났습니까? – Ian

답변

1

나는 오류가 라인 return search2(sName,treeItem);에 생각합니다. 발견 된 일치하면 반환해야하는 경우에만 ... 일치하는 후 발견 된 경우 자식 노드의 나머지 부분을 계속 검사 할이을 시도해보십시오.

public TreeItem search2(String sName, TreeItem node) { 
    if (node.getText().equalsIgnoreCase(sName) { 
     return node; 
    } 
    for (int i = 0; i < node.getChildCount(); i++) { 
     TreeItem treeItem = search2(sName, node.getChild(i)); 
     if (treeItem != null) { 
      return treeItem; 
     } 
    } 
    return null; 
} 

참고 : 하나 개의 노드 (그리고 노드 텍스트 일치 SNAME)이 발생했을 경우 올바르게 작동하지 않기 때문에 내 첫 번째 대답을 편집했다.

Andy

관련 문제