2014-11-20 2 views
0

특정 노드에 대한 경로를 찾으려면 0이 왼쪽 분기를 가져 왔음을 나타내며 1은 오른쪽입니다.BinarySearchTree에서 노드에 대한 경로를 찾는 데 문제가 있습니다.

여기 내 코드입니다.

private static String getPathTo(final BinaryNodeInterface<Character> root, char c) 
{ 
    // TO DO 
    String path = ""; 
    return getPT(root, c, path); 
} 

private static String getPT(BinaryNodeInterface<Character> root, char c, String path) 
{ 

    if(root.getData().equals(c)) 
     return path; 
    if((root.getData() > c) && (root.getLeftChild() != null)) 
    { 
     path = path + "0"; 
     getPT(root.getLeftChild(), c, path); 
    } 
    if((root.getData() < c) && (root.getRightChild()!= null)) 
    { 
     path = path + "1"; 
     getPT(root.getRightChild(), c, path); 
    } 

    return "CHARACTER NOT FOUND"; 
} 

루트를 제외하고 "문자를 찾을 수 없습니다"를 반환합니다. 나는 너무 혼란 스럽기 때문에 정말로 혼란 스럽다. 그러나 분명히 나는 ​​잘못된 것을하고있다. 이 검사는 모든 시간을

if(root.getData().equals(c)) 

승리하지 않는 한

답변

0

당신은 다른 if() 문을 통해 가을 때문에 "CHARACTER NOT FOUND"을 반환하고 아무 것도 반환하지 않습니다.

관련 문제