Hi Ich habe Probleme beim Einfügen auf der rechten Seite eines Knotens in einem Binärbaum ... Ich sehe nicht, warum die Ausnahme passiert. Dies ist die Methode zum Einsatz:TreeViolationException Problem
public void attachRight(BinaryTree<T> tree) {
if (right != null) {
throw new TreeViolationException();
}
if (tree != null) {
tree.parent = this;
right = tree;
}
}
Dies ist der Code in meiner Hauptklasse
public class Test {
public static void main(String[] args) {
/* the tree to be built 30
* / \
* 12 16
* /\ /\
* null 1 2 5
*/
//Create binary tree and set root to 30
BinaryTree<Integer> root = new BinaryTree<Integer>();
root.makeRoot(30);
//System.out.println(root.getData()); //for verifying only
//Insert 12 -> left(30)
root.attachLeft(new BinaryTree<Integer>());
root.left.setData(12);
//Insert 16 -> right(30)
root.attachRight(new BinaryTree<Integer>());
root.right.setData(16);
//insert 1 -> right(12)
root.right.attachRight(new BinaryTree<Integer>());
root.right.right.setData(1);
//insert 2 -> left(16)
root.right.attachLeft(new BinaryTree<Integer>());
root.right.left.setData(2);
//insert 5 -> right(16)
root.right.attachRight(new BinaryTree<Integer>());
root.right.right.setData(5);
System.out.println(root.getData());
System.out.println(root.left.getData());
System.out.println(root.right.getData());
}
}
Ich bin nur in der Lage einzusetzen ist, 30, 12 und 16. Nicht sicher, was passiert .... Dies ist der Fehler, den ich bekomme, passiert es in der attachRight-Methode
Exception in thread "main" proj5.TreeViolationException bei proj5.BinaryTree.attachRight (BinaryTree.java:98)
TreeViolationException nur eine Klasse ist, dass ich, dass erstreckt Runtime
Ich denke // einfügen 1 -> rechts (12) root.right.attachRight (neu BinaryTree()); sollte sein // einfügen 1 -> rechts (12) root.left.attachRight (neuer BinaryTree ()); –