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:
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;
}
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 )
main:
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 );
}
l'algoritmo di stampa è corretto perchè uguale identico a quelli sul web...
non riesco a trovare il perchè..
grazie mille in anticipo!