द्विआधारी खोज वृक्ष

वोट
0

मेरे प्रोफेसर अंतिम परीक्षा के लिए कुछ समीक्षा सवाल पोस्ट। और मैं इसके लिए जवाब मिल नहीं कर पा रहे। किसी भी प्रकार की सहायता सराहनीय होगी!

N नोड्स के एक द्विआधारी पेड़ पर विचार करें:
एक। पत्र-गांठ के न्यूनतम और अधिकतम संख्या क्या है?
ख। ऊंचाई के न्यूनतम और अधिकतम मूल्य क्या है?
सी। कितने संकेत दिए गए पेड़ (शून्य संकेत गिनती नहीं है, और यह सोचते हैं कि हम एक क्षेत्र है कि माता-पिता को संग्रहीत करता है नहीं रखते) द्वारा किया जाता है?

* D। एक (शुरू में खाली) द्विआधारी खोज वृक्ष में n नोड्स डालने के लिए सबसे खराब देखभाल चल समय क्या है?

24/05/2011 को 18:27
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
0

एक कागज पर विभिन्न पेड़ों ड्राइंग की कोशिश करो और आप क्या मिलता है देखते हैं। याद रखें कि एक द्विआधारी पेड़ एक पेड़ जहां प्रत्येक नोड 0 हो सकता है के रूप में परिभाषित किया गया है 1 या 2 बच्चों (जिस स्थिति में यह एक पत्ता है),। अपने प्रश्न के लिए आप प्रति नोड 1 बच्चे की बहुत असंतुलित मामले की जांच करनी चाहिए।

24/05/2011 को 18:31
का स्रोत उपयोगकर्ता

वोट
0

विचार करें:

आप के पत्तों की संख्या को अधिकतम करने की कोशिश कर रहे हैं, तो आप कम से कम संभव आंतरिक नोड्स (और रिवर्स यदि आप पत्तियों की संख्या को कम करने की कोशिश कर रहे हैं) चाहते हैं। आपको लगता है कि कैसे पूरा कर सकते हैं?

अधिक से अधिक ऊंचाई के एक पेड़ के लिए, आप संभव के रूप में प्रत्येक स्तर में के रूप में कुछ नोड्स डाल देता हूँ। आप ऐसा कैसे कर सकते हैं? इसके विपरीत, न्यूनतम ऊंचाई के लिए, नोड्स की अधिकतम संख्या आप प्रत्येक स्तर पर डाल सकते हैं क्या है?

कैसे कई मायनों वहाँ एक पेड़ के प्रत्येक नोड को पाने के लिए कर रहे हैं? इस प्रकार, आप कितने संकेत की जरूरत है?

24/05/2011 को 18:33
का स्रोत उपयोगकर्ता

वोट
0

मैं आप या तो सी या सी में कोडिंग कर रहे हैं संभालने हूँ ++।

ए। एक नोड, संरचना इस तरह परिभाषित किया गया है, तो: struct नोड {struct नोड * छोड़ दिया, * सही; }; आप देख सकते हैं कि संरचना या तो 0, 1, या 2 पत्ते हो सकता है। तो, अधिकतम 2 है, न्यूनतम 0 पत्ते है।

b.Minimal ऊंचाई शून्य है, जिसमें केवल रूट नोड शामिल होता है। ध्यान दें कि रूट नोड 1. यह भी समय पर गहराई कहा जाता है की ऊंचाई के रूप में नहीं गिना जाता। यहाँ ऊंचाई के लिए एक एल्गोरिथ्म है:

    int height(struct node *tree) 
    { 
    if (tree == NULL) return 0;
    return 1 + max (height (tree->left), height (tree->right)); 
    }

और अधिक पढ़ें: http://wiki.answers.com/Q/How_do_you_find_out_the_height_of_a_Binary_Search_Tree#ixzz1NIB17SkL

सी। मुझे माफ करना अगर मैं इस worng रास्ता ले, लेकिन अगर हम इस कागज के एक टुकड़े पर खंडों की मैं यह सोचते हैं रहा हूँ, हम "लिंक" है कि हम प्रयोग करेंगे की संख्या खोजने की कोशिश होगी? उस मामले में, यह बस पेड़ -1 रूट नोड के लिए में नोड्स की संख्या होगी। इस एल्गोरिथ्म इस पृष्ठ पर पाया http://forums.techarena.in/software-development/1147688.htm आप मदद कर सकते हैं: जाँच करता है, तो जड़ रिक्त है, तो समारोह में पैरामीटर के रूप में छोड़ दिया और सही नोड्स गुजरती हैं।

int countnodes(Node* root)
{
    if (root == null || k<=0)
    {
      return 0;
    } else {
        return 1 + count(root.left,k-1) + count(root.right,k-1);
    }
}
// remember to subtract one at the end.
int totalnodes = countnodes(root) - 1;

घ। सबसे अच्छा मामले के लिए समय जटिलता ओ (nlogn) जहां n डालने के लिए नोड्स की संख्या है। सबसे खराब स्थिति, हे (एन) है। यह सीधे रैखिक है।

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

आशा है कि ये आपकी मदद करेगा। तुम्हारी परीक्षा के लिए शुभकामनाये! मैं मेरा कुछ महीने पहले किया था। ;)

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

वोट
1

  • पत्तियों की अधिकतम संख्या प्लस्तर लगाना (एन / 2) है। न्यूनतम संख्या 1 है
  • अधिकतम ऊंचाई n है। न्यूनतम मंजिल है (log_2 (एन))
24/05/2011 को 18:44
का स्रोत उपयोगकर्ता

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