У меня возникли проблемы с печатью обхода 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. У меня есть тест на двоичных деревьях, и обход обхода может быть одним из вопросов. Я просто пытаюсь разобраться в вещах. – user69514
Я настоятельно рекомендую вам не иметь метода, который принимает параметр «root», когда класс также имеет поле «root». Это делает вещи очень запутанными. –