द्विआधारी खोज पेड़ - निम्नतम और उच्चतम कुंजी के बीच अंतर लौटें

वोट
4

यह द्विआधारी खोज के पेड़ मैं प्रयास कर रहा हूँ पर एक अतीत परीक्षा कागज है। मैं अगर उत्पादन सही है के रूप में मैं इन चीजों में से एक का निर्माण करने में सक्षम नहीं कर रहा हूँ जाँच करने के लिए कोई रास्ता नहीं है।

सवाल शीर्षक में है

class Tree{
    Tree left;
    Tree right;
    int key;

   public static int span(Tree tree)
   {
        if ( tree == null ){
             return null;
        }

        if( tree.left != null)
             int min = span(tree.left);
         }

        if( tree.right != null){
             int max = span(tree.right);
         }
         return max - min;
    }
}

किसी को भी सुझाव है कि कर सकते हैं कि मैं क्या 5/5 अंक प्राप्त करने के लिए बदलने की जरूरत है: डी - केवल एक ही चीज़ हम क्या करना है लिखना है spanविधि, शीर्ष लेख हमारे लिए दिया गया था।

12/05/2010 को 16:55
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

आप दो तरीकों को परिभाषित करने की जरूरत है, min(Tree)और max(Tree)है, तो span(Tree t)के रूप में परिभाषित किया गया है max(t) - min(t)spanखुद पुनरावर्ती नहीं होना चाहिए, लेकिन आप कर सकते हैं minऔर maxपुनरावर्ती अगर आप चाहते हैं।

ध्यान दें कि minऔर maxनहीं करता है अपने स्वयं के तरीकों किया जाना है। आप बनाने के लिए परवाह नहीं है, तो उन्हें अपने इकाइयों के रूप में खड़े हो जाओ, तुम यह सब में डाल सकते हैं spanइस तरह:

int span(Tree t) {
   Tree tMin = t;
   while (tMin.left != null) {
      tMin = tMin.left;
   }

   Tree tMax = t;
   while (tMax.right != null) {
      tMax = tMax.right;
   }

   return tMax.key - tMin.key;
}
12/05/2010 को 17:21
का स्रोत उपयोगकर्ता

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