8
/ \
4 12
/\ /\
3 6 2 1
/\ /\ //\
7 10 13 15 5 9 11
/
14
मैं इस उदाहरण में मैं केवल एक दादा, संख्या 12 (मुझे लगता है कि वह है केवल दो या जरूरत है, एक पेड़ के दादा को खोजने की जरूरत है केवल दो या तीन grandchildrens तीन पोते)।बाइनरी ट्री में, लगता है कि कितने दादा
int T(struct node * tree){
int t = 0;
if (tree == NULL)
return 0;
if (tree->left && tree->right)
{ //In this case i check if we NOT have all the four grandchildrens.
if (!((tree->left->left) && (tree->left->right) && (tree->right->left) && (tree->right->right)))
{
t = 1 + T(tree->left) + T(tree->right);
T(tree->left);
T(tree->right);
}
else
{
T(tree->left);
T(tree->right);
}
}
return t;
}
दुर्भाग्य से यह काम नहीं करता ... किसी ने मुझे इस के साथ मदद कर सकते हैं:
यह वही है मैं अब तक की कोशिश की है?
आप कुछ रिकर्सिव कॉल कर रहे हैं जहां आप वापसी मूल्य को अनदेखा करते हैं। – molbdnilo
मैं इसे कैसे ठीक कर सकता हूं? – gogo
पेड़ कितना संतुलित है? क्या केवल एक बच्चा होना चाहिए लेकिन दो पोते हैं? यदि ऐसा है, तो आपको उस मामले के लिए अतिरिक्त कोड की आवश्यकता है (आपके पास जो भी है उसमें बग को ठीक करने से परे)। – JSF