Kann jemand mir den Weg zeigen, einen Binärbaum zu loopen, um alle Knoten zu durchlaufen. Ich werde Studenten durch Einfügen Methode hinzufügen. Ich möchte nur alle Schüler Objekte drucken. Das ist mein BST:Iterate durch binäre Suche Baum 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;
}
}
Knoten Klasse:
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
}
Ihre insert-Methode nie Wurzel zuordnet, gibt sie nur neu erstellte Knoten und Rückgabewert wird nie verwendet. –
Ich denke, dass Sie einige Probleme in Ihrer Einfügemethode haben – thepaulo
Ich habe Code bearbeitet. – Dilshan