Buongiorno,
Sto studiando le strutture dati in C e mi trovo a dover sviluppare una funzione che dato un albero binario mi restituisca il valore massimo dei nodi all'interno. Inoltre l'esercizio mi chiede di ricercare un Item specifico all'interno dell'albero.
Ora per la ricerca di un Item specifico ho scritto questa funzione, che purtroppo però mi da qualche problema.
int searchItemTree(BTree t, Item search){
if(!isEmptyTree(t)){
if(cmpItem(t->value, search)==0)
return 1;
searchItemTree(t->left, search);
searchItemTree(t->right, search);
}
return 0;
}
Per quanto riguarda la ricerca del massimo ho scritto:
Item maxItemTree(BTree t){
Item max;
if(!isEmptyTree(t)){
max=t->value;
Item maxleft=maxItemTree(t->left);
Item maxright=maxItemTree(t->right);
if(maxleft>maxright)
max=maxleft;
else
max=maxright;
}
return max;
}
Esplicito la forma delle strutture utilizzate:
struct node{
Item value;
struct node *left;
struct node *right;
};
typedef struct node* BTree; //Utilizzo il typedef per utilizzare il nome BTree come tipo di dati.
Non riesco purtroppo a capire dove si trova l'errore che non mi fa funzionare correttamente il codice. Potete aiutarmi voi?