노드를 추가 할 때와 콘솔에 순서대로 트리를 인쇄 할 때 완벽하게 기능하는 내 자신의 노드로 이진 검색 트리를 처음부터 만들었습니다. 그러나, 나는 한 시간 반 동안 toString
방법을 사용하게되었습니다. 내가 문자열 비교 유형의 데이터를 변환 할 때이 혼란스러워지고 있다고 생각했기 때문에 toString 이진 검색 트리 탐색 방법
MakeString
내
toString
방법을 변경했습니다. 메서드를 하나의 노드 또는 객체 형식으로 반환 할 수 있지만 문자열 형식의 전체 트리를 반환 할 수는 없습니다.
printInOrder()
메서드가 완벽하게 작동하므로 내
MakeString()
메서드는 왜 작동하지 않습니까?
public void printInOrder(){
if (left != null) left.printInOrder();
System.out.println(data);
if (right != null) right.printInOrder();
}
public String MakeString(){
String OrderedTree;
StringBuilder sb = new StringBuilder();
if (data == null) return "Tree is empty";
if (left != null) left.MakeString();
sb.append(data);
if (right != null) right.MakeString();
전체 클래스를 붙여주세요. 또한, 당신은'left.MakeString()'의 결과를 사용하지 않습니다. –
또한 정말로 원하는 텍스트 출력을 보여주십시오. 콘솔에 이진 트리를 출력하는 것은 코드와 상관없이 읽을 수있는 방법입니다. –
마지막 행이 누락되었지만 sb.toString() 만 반환됩니다. – Matt