Может ли кто-нибудь показать мне путь к циклу двоичного дерева, чтобы пересечь все узлы. Я добавлю студентов методом вставки. Я просто хочу напечатать все объекты студентов. Это мой BST:Итерация через двоичное дерево поиска java
public class BinarySearchTree<Students extends Comparable<? super Student>> {
public static BinaryNode root;
public BinarySearchTree() {
this.root = null;
}
public void insert(Student student) {
root = insert(student, root);
}
protected BinaryNode<Student> insert(Student student, BinaryNode<Student> t) {
if (t == null) {
t = new BinaryNode<Student>(student);
} else if (student.compareTo(t.element) < 0) {
t.left = insert(student, t.left);
} else if (student.compareTo(t.element) > 0) {
t.right = insert(student, t.right);
} else {
// throw new DuplicateItemException(student.toString());
}
return t;
}
}
узла Класс:
class BinaryNode<Student> {
// Constructor
BinaryNode(Student theElement) {
element = theElement;
left = right = null;
}
// Data; accessible by other package routines
Student element; // The data in the node
BinaryNode<Student> left; // Left child
BinaryNode<Student> right; // Right child
}
Ваш метод вставки никогда не присваивает корень, он просто возвращает вновь созданный узел и что возвращаемое значение никогда не используется. –
Я думаю, что у вас есть некоторые проблемы в вашем методе insert – thepaulo
Я отредактировал код. – Dilshan