과제를하려고하는데 첫 번째 단계에서 문제가 있습니다.사전 주문 bitstring에서 이진 트리 만들기
샘플 입력된다 :의 출력을 제공
A0
0
A00
ab000
아래 링크 컨텍스트에 대한 할당인지 :
트리 1 :
잘못되었습니다!
트리 2 :
높이 : -1
경로 길이 : 0
완성 : 예
postorder :
나무 3 :
높이 : 0
경로 길이 : 전체 0
: 예
postorder : a
트리 4 :
높이 : 1
경로 길이 : 1
,210 전체 : 예
postorder : 바
내가 실제로 입력의 이진 트리를 구축에 부착하고 있기 때문에 할당에 진행 드릴 수 없습니다. 내가 선주문 방법 제대로 이진 트리를 짓고 있어요하는지 테스트하기 위해 노력하고
public class btsmall {
int k = 0;
char[] cArray;
public static void main(String[] args) throws IOException {
new btsmall().run();
}
static class Node {
Node left;
Node right;
char value;
public Node(char value) {
this.value = value;
}
}
public void run() throws IOException {
String preorder;
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(input);
while ((preorder = reader.readLine()) != null) {
cArray = preorder.toCharArray();
Node tree = null;
insert(tree);
preorder(tree);
k = 0;
}
}
public void insert(Node node) {
if (cArray[k] == (char) 0) {
node = new Node((char) 0);
node.left = node.right = null;
k++;
} else {
node = new Node(cArray[k]);
k++;
insert(node.left);
insert(node.right);
}
}
public void preorder(Node node) {
if (node != null) {
System.out.println(node.value + " ");
preorder(node.left);
preorder(node.right);
}
}
}
,하지만 난이 프로그램을 실행할 때마다이 보인다 : 지금까지 가지고 올 수 있었다 코드는 다음과 같습니다 어딘가에 무한 루프에 갇혀 있어야합니다. 아무도 그것을 일으키는 원인을 지적 할 수 있습니까? 그리고 실제로 이것으로 올바른 길을 가고 있습니까? 누군가이 특정 이진 트리를 구축하는 방법에 대해 어떤 힌트를 가지고 있습니까?
감사합니다.
코드가 매우 혼란 스럽습니다. 먼저 코드를 정렬 해보십시오. insert() 메소드 - 노드가 덮어 쓰기 전용 일 때 매개 변수가되는 이유는 무엇입니까? 정수 0을 char로 캐스팅 하시겠습니까? '0'을 의미합니까? –
질문을 삭제하지 마십시오 - "신경 쓰지 마세요. 나쁜 질문입니다. 답변을 주셔서 감사합니다." 의견이어야한다. –