मेरे बाइनरी खोजें ट्री कार्यक्रम कुछ भी हटाए जा करने के लिए जब मैं deleteNode विधि कॉल नहीं लगती। BST पूरी तरह से बनाया गया है, इसकी सिर्फ नोड बात यह है कि काम नहीं करता है हटा रहा है। मैं इसे इस तरह अपने मुख्य से कहते हैं:
System.out.println(Please enter a number you would like to delete from the tree);
temp = reader.nextLine();
try {
int numTemp = Integer.parseInt(temp);
TreeNode treeTemp = bst.deleteNode(numTemp, bst.getRoot());
bst.setRoot(treeTemp);
}
catch(Throwable e){
System.err.println(e);
}
bst.printInBST(bst.getRoot());
मेरी BinarySearchTree कक्षा में मैं निम्नलिखित के रूप में मेरे deleteNode तरीकों को लागू:
public TreeNode deleteNode(int x, TreeNode temp){
if(temp != null){
if(x > (int)((Integer)temp.getValue())){
temp.setLeft(deleteNode(new Integer(x), temp.getLeft()));
}
else if(x < (int)((Integer)temp.getValue())){
temp.setRight(deleteNode(new Integer(x), temp.getRight()));
}
else if(temp.getLeft() != null & temp.getRight() != null){
TreeNode temp2 = new TreeNode(temp.getRight().getValue());
while(temp2.getLeft() != null){
temp2 = temp2.getLeft();
}
temp = temp2;
temp.setRight(remove(temp.getRight()));
}
}
return temp;
}
public TreeNode remove(TreeNode temp){
if(temp.getLeft() != null){
temp.setLeft(remove(temp.getLeft()));
return temp;
}
else {
return temp.getRight();
}
}













