8
/ \
4 12
/\ /\
3 6 2 1
/\ /\ //\
7 10 13 15 5 9 11
/
14
Ho bisogno di trovare i nonni di un albero, in questo exemple ho un solo nonno, numero 12 (ho bisogno che lui ha solo due o tre nipoti).In Albero binario, trovare quanti nonni hanno solo due o tre grandchildrens
Questo è ciò che ho provato finora:
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;
}
Purtroppo non funziona ... Qualcuno mi può aiutare con questo?
Stai facendo alcune chiamate ricorsive in cui ignori il valore restituito. – molbdnilo
Come posso risolvere il problema? – gogo
Quanto è equilibrato l'albero? È possibile avere un solo figlio ma due nipoti? Se è così, hai bisogno di un codice aggiuntivo per quel caso (oltre a correggere il bug in quello che hai). – JSF