salve a tutti!
sto facendo qualche esercizio sugli alberi binari, creazione, stampa, e deallocazione dell'albero.
compilando nessun problema, ma al momento dell'esecuzione il programma, dopo l'inserimento dei dati, termina con 0 errori, non stampando però i valori dell'albero binario
la stamp del numero binario credo sia corretta e anche la deallocazione, ecco il codice:
funzione per creare nuovo nodo:
sono consapevole che esiste anche la funzione ricorsiva, sicuramente migliore in termini di prestazioni rispetto a questa, ma ho preferito andare sul facile all'inizio( anche se in un certo senso sarebbe stato più facile la ricorsiva, diciamo che questa possibilità è più comprensiva )codice:void crea_nuovo_nodo( albero* &start, int num ){ albero* temp_p= start; albero* new_tree= new albero; while( temp_p != NULL ) { if ( rand() % 2== 0 ) temp_p= temp_p -> left; else temp_p= temp_p -> right; } new_tree -> info= num; new_tree -> left= NULL; new_tree -> right= NULL; temp_p= new_tree; }
main:
l'algoritmo di stampa è corretto perchè uguale identico a quelli sul web...codice:main() { albero* init= NULL; int n; srand( time( 0 ) ); for( int l= 1; l <= 10; l++ ) { cout << "inserisci il " << l << " numero:" << endl; cin >> n; crea_nuovo_nodo( init, n ); } stampa_albero( init ); cancella_lista( init ); }
non riesco a trovare il perchè..
grazie mille in anticipo!![]()





Rispondi quotando