Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    156

    [C] Ricerca minimo ricorsione

    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:
    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;
            }
        }
    }
    ...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?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    156
    Edit: ho trovato finalmente l'errore da solo, scusate per il post inutile.

  3. #3
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Pubblica il codice corretto, potrebbe servire anche a qualcun altro

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    156
    ...il confronto f_right==f_left non ha senso, bisogna correggere quella parte in primis...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.