Salve a tutti.
Ho un albero formato da nodi ognuno dei quali ha un'informazione strutturata del tipo:
-matricola
-cognome
-nome
-produttivita.
L'albero risulta ordinato secondo la matricola.
La funzione ricorsiva che devo scrivere deve restituirmi il riferimento al nodo con produttività maggiore ( a parità di produttività restituisce quello con matricola minore).
Il codice che ho scritto è il seguente:
...ma purtroppo mi esce il classico errore di windows (come lo stack overflow), quindi penso ci sia un'errore logico, che tuttavia non riesco a trovare. Qualcuno può aiutarmi?codice:t_node* produttivita_maggiore(t_tree tree) { if(tree==NULL || (tree->right==NULL && tree->left==NULL)) return tree; else { t_node* f_right=tree->right; t_node* f_left=tree->left; f_right=produttivita_maggiore(tree->right); f_left=produttivita_maggiore(tree->left); if(f_right==f_left) { if((strcmp((f_right->info).matricola,(f_left->info).matricola))<0) return f_right; else return f_left; } else { if((f_right->info).produttivita > (f_left->info).produttivita) return f_right; else return f_left; } } }

Rispondi quotando
