मैं अपने डेटा संरचनाओं (बाइनरी खोजें ट्री) में से एक परीक्षण करने के लिए एक ड्राइवर का उपयोग किया गया है और मैं इस समस्या का सामना करते है। -यह होता है जब मैं BST में अधिक से अधिक 2 ऑब्जेक्ट सम्मिलित क्या मुझे क्या करना कोशिश कर रहा हूँ: मैं पेड़ में 4 ऑब्जेक्ट सम्मिलित कर रहा हूँ, तो मैं 2 वस्तुओं को हटाने कर रहा हूँ, और फिर मेरी खोज विधि को प्रिंट इतना है कि यह क्या है या प्रदर्शित करता है नहीं यह वस्तुओं मेरा अनुरोध है पाया। उदाहरण के लिए:
BinarySearchTree2<Integer> theData1 = new BinarySearchTree2<Integer>();
long start1 = System.currentTimeMillis();
theData1.insert(c1);
theData1.insert(c2);
theData1.insert(c3);
theData1.delete(c2);
System.out.println(theData1.find(c1));
System.out.println(theData1.find(c2));
System.out.println(theData1.find(c3));
System.out.println(theData1.find(c4));
जब मैं इसे चलाने मैं यह त्रुटि प्राप्त:
सूत्र में अपवाद मुख्य java.lang.ClassCastException: TreeNode BinarySearchTree2.delete (BinarySearchTree2.java:83) Driver5.main पर (Driver5.java:36) पर java.lang.Comparable में ढाला नहीं जा सकता
जो तब मेरी BST कक्षा में हटाने विधि है जो के लिए अंक:
public void delete(E item) {
TreeNode<E> nd = root;
while(nd != null && nd.getItem().compareTo(item) != 0)
{
if(nd.getItem().compareTo(item) < 0)
nd = nd.getRight();
else
nd = nd.getLeft();
}
if( nd.getLeft() == null && nd.getRight() == null)
{
nd = null;
}
else if(nd.getLeft() != null && nd.getRight() == null)
{
nd.setItem((E)nd.getLeft());
}
else if(nd.getLeft() == null && nd.getRight() != null)
{
nd.setItem((E)nd.getRight());
}
else if(nd.getLeft() != null && nd.getRight() != null)
{
nd.setItem((E)findsucc(nd));
}
}
त्रुटि मेरी हटाने विधि में इस लाइन को सीधे बताते हैं:
nd.setItem((E)nd.getRight());













