marco88 Inserito: 15 ottobre 2008 Segnala Share Inserito: 15 ottobre 2008 (modificato) Ciao a tutti, sto preparando un esame e ieri provavo ad esercitarmi sugli alberi binari, ho pensato di fare un semplice programmino che richiede l'input di numeri che vengono inseriti in ordine nell'albero binario, con gli elementi minori o uguali a sinistra e a destra quelli maggiori, e che permetta la visita in-order dell'albero. putroppo non mi funziona bene, e non riesco a capire perche, le funzioni sono tutte ricorsive, e nella funzione di collegamento dei nodi, se notate ho messo la stampa di una lettera "s" se sinistra e "d" se destra, ho fatto cio per vedere quante volte la funzione ricorsiva richimava se stessa, sia per mettere a sinistra che a destra, e ho notato che gli elementi che dovrebbe inserire ad esempio ad un secondo livello dell'albero, li inserisce sempre al primo, visto che la stampa delle lettere me la fa sempre una volta e non due, quindi sono arrivato alla conclusione che il problema sia li, vi metto il link del codice.. spero possiate aiutarmi ,un ciao e un grazie a tutti!http://www.zshare.net/download/2057801540fc0c0e/ Modificato: 15 ottobre 2008 da marco88 Link al commento Condividi su altri siti More sharing options...
marco88 Inserita: 16 ottobre 2008 Autore Segnala Share Inserita: 16 ottobre 2008 per chi potesse interessare, sono riuscito a fare la funzione correttamenteeccovi il codicedati * annoda(dati *radice,dati *elem){ if(radice==NULL) { printf(" numero inserito!\n"); return elem; } else { if((elem->num)<=(radice->num)) { printf("\ns"); radice->sinistra=annoda(radice->sinistra,elem); return radice; } else { printf("\nd"); radice->destra=annoda(radice->destra,elem); return radice; } }} Link al commento Condividi su altri siti More sharing options...
solchiere Inserita: 13 novembre 2008 Segnala Share Inserita: 13 novembre 2008 Utilizzo spesso questo tipo di strutture, utili in 1000 occasioni ancheper rappresentare strutture reali, come ad esempio gli organigrammi aziendali.E' un po' che non gioco coi puntatori poichè per tanti motivi, in primis per produttività e potenza, sono passato definitivamente a C#. Ho avuto occasione di creare e testare una struttura ad albero (non binaria, ma n-aria) sia a radice singola che a radice multipla e le relative funzioni di ricerca e navigazione. Inoltre ho sviluppato (per la creazione di un organigramma) anche una GUI per l'inserzione dei dati. Se può esserti utile posso fornirti le classi della struttura dati..... (sempre in C#), avevo sviluppato anche un albero binario in C++ durante la precedente attività lavorativa, ma ho scordato di mantenerla, forse ritenedo che sarei passato definitivamente al C# dopo oltre un anno di sviluppo in VC++ 6 (la parte di struttura dati è bella, ma la parte grafica con MFC è improponibile ed anacronistica) Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora