PDA

Visualizza la versione completa : [C] Ricerca minimo ricorsione


slashino
28-05-2012, 18:59
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:


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;
}
}
}

...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?

slashino
28-05-2012, 20:31
Edit: ho trovato finalmente l'errore da solo, scusate per il post inutile.

goatboy
29-05-2012, 09:09
Pubblica il codice corretto, potrebbe servire anche a qualcun altro

slashino
29-05-2012, 15:48
...il confronto f_right==f_left non ha senso, bisogna correggere quella parte in primis...

Loading