내 바이너리 트리의 inOrder 순회를 인쇄하는 데 문제가 있습니다. 트리에 많은 항목을 삽입 한 후에도 3 개의 항목 만 인쇄합니다.Java 바이너리 트리. InOrder traversal 인쇄
public class BinaryTree {
private TreeNode root;
private int size;
public BinaryTree(){
this.size = 0;
}
public boolean insert(TreeNode node){
if(root == null)
root = node;
else{
TreeNode parent = null;
TreeNode current = root;
while(current != null){
if(node.getData().getValue().compareTo(current.getData().getValue()) <0){
parent = current;
current = current.getLeft();
}
else if(node.getData().getValue().compareTo(current.getData().getValue()) >0){
parent = current;
current = current.getRight();
}
else
return false;
if(node.getData().getValue().compareTo(parent.getData().getValue()) < 0)
parent.setLeft(node);
else
parent.setRight(node);
}
}
size++;
return true;
}
/**
*
*/
public void inOrder(){
inOrder(root);
}
private void inOrder(TreeNode root){
if(root.getLeft() !=null)
this.inOrder(root.getLeft());
System.out.println(root.getData().getValue());
if(root.getRight() != null)
this.inOrder(root.getRight());
}
}
이 숙제입니까? –
나는 hw라고 부를 수 있다고 생각한다. 나는 바이너리 트리에 대한 테스트를하고 있고, inOrder traversal은 질문 중 하나 일 수 있습니다. 나는 사물을 닦으려고하고있다. – user69514
클래스에 'root'필드가있는 경우 'root'매개 변수를 사용하는 메소드가 없다는 것이 좋습니다. 이것은 일을 매우 혼란스럽게 만듭니다. –