나는 toString 메소드를 가지고있다.이 메소드는 전체 2 진 검색 트리를 나타내는 문자열을 순서대로 리턴해야한다. 지금까지이 방법을 사용해 왔지만 순서대로 번호를 출력하는 것뿐입니다. toString 메서드는 물론 rootNode의 값을 반환합니다. 이 문제를 어떻게 풀어야할지 모르겠다.자바 바이너리 검색 트리 inorder inorder 재귀 적으로, 리턴 스트링
@Override
public String toString() {
if (rootNode == null){
return "";
}
else {
return inorder(rootNode.data);
}
}
/**
* @param root
*/
public String inorder(Node<T> root){
if (root != null){
inorder(root.left);
System.out.println(root.value + " ");
inorder(root.right);
}
}
나는 몇 시간 동안이 문제에 봉착했습니다. 그 toString()이 travsersal inorder를 해당 문자열을 반환 할 수 있도록
문제가 무엇 : 마지막으로
, 당신과 결과를 확인할 수 있습니까? 귀하의 설명이 코드와 일치합니다. 'toString()'함수에서 기대하는 것은 무엇입니까? 가능한 경우 전체 코드와 샘플 입출력을 프로그램에 제공하십시오. –
아니요, toString 메서드는 ** BST 전체를 하나의 문자열로 반환해야합니다 ** 단지 인쇄하지 말아야합니다. – SuperMacster
문제는 void inorder (노드)에서 inorder (노드 ) 메서드 내에서 문자열 시퀀스를 생성하는 대신 인쇄에 관심이 없으므로 String s = inorder (Node )를 호출 한 후 인쇄됩니다. inorder 구조체와 inorder의 트리 (노드 )는 toString() 메서드에서 결과를 다시 전송하는 데 관심이 있다면 String을 반환해야합니다. –
ShayHaned