धागा "मुख्य" java.lang.ClassCastException में अपवाद:

वोट
0

मैं अपने डेटा संरचनाओं (बाइनरी खोजें ट्री) में से एक परीक्षण करने के लिए एक ड्राइवर का उपयोग किया गया है और मैं इस समस्या का सामना करते है। -यह होता है जब मैं 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());
17/09/2010 को 06:30
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
2

मुझे लगता है कि ई के अपने घोषणा है जब आप कहते हैं "ई फैली Comaprable", उस मामले में nd.getRightयह TreeNode उदाहरण है, जिसमें तुलनीय के लिए डाली सफल होने के लिए हो गया है लौट आए।

लाइन जहां अपवाद हुई नीचे की तरह लग रहे कलाकारों को पारित करने के लिए करना चाहिए

nd.setItem(nd.getRight.getItem)
17/09/2010 को 06:38
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more