एक बाइनरी ट्री में विभाजन गलती

वोट
1

या तो मैं रास्ते के लिए इस कोड को बहुत लंबा घूर रहा है या मैं सिर्फ इस एक को समझ नहीं सकता। लेकिन मैं अवरोही क्रम में एक 8000 नंबर पाठ फ़ाइल का उपयोग जब; 8000, 7999, ... मैं ऊंचाई समारोह में एक विभाजन गलती मिलता है। किसी को एक बार देख ले सकता है अगर मैं ऐसा आभारी होंगे। धन्यवाद।

    int BST::height(TreeNode* node)
    {

        int leftSubtree = 0;
        int rightSubtree = 0;
        if (node == NULL)
            return 0;
        else 
        {

            if (node -> getLeft() != NULL)
                leftSubtree = height(node -> getLeft());
            if(node -> getRight() != NULL)      
                rightSubtree = height(node -> getRight());

            if (leftSubtree > rightSubtree)
                return leftSubtree + 1;
            else 
                return rightSubtree + 1;
        }
    }//ends second height
17/04/2011 को 04:10
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

आप संख्या तो आप एक सूची में इस भंडारण किया जा सकता है की एक हल कर सूची है (एक पेड़ के लिए सबसे खराब स्थिति हे (एन) जब तक कि यह संतुलित है है)।

इस मामले में, अपने पुनरावर्ती दिनचर्या 8000 के ढेर गहराई के साथ 8000 बार recursing हो जाएगा।

अगर यह ढेर अतिप्रवाह के लिए पर्याप्त है मैं नहीं जानता, लेकिन किसी भी मामले में आप अगर सब कुछ वाम-पंथी शाखा नीचे जा रहा है देखने के लिए मध्यवर्ती चरणों में अपने पेड़ पर एक नज़र रखना चाहिए।

17/04/2011 को 05:39
का स्रोत उपयोगकर्ता

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