मैं आप या तो सी या सी में कोडिंग कर रहे हैं संभालने हूँ ++।
ए। एक नोड, संरचना इस तरह परिभाषित किया गया है, तो: 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 सेकंड में सीख सकते हैं।
आशा है कि ये आपकी मदद करेगा। तुम्हारी परीक्षा के लिए शुभकामनाये! मैं मेरा कुछ महीने पहले किया था। ;)