Innanzitutto ho un problema col seguente programma:
Perchè mi da errore alla riga colorata di rosso dicendomi che non può effettuare un assegnamento da char+ a char[20] ???codice:#include <stdio.h> #include <conio.h> #include <iostream.h> #include <stdlib.h> /* INIZIO DICHIARAZIONE */ typedef char parola[20]; struct albero{ parola p; albero * ptsx; albero * ptdx; }; albero * radice; parola par; char risp; void inserisci_in_albero(albero*,parola); int regola(parola,parola); /* FINE DICHIARAZIONE */ int main(){ do{ cout<<"\nInserire una parola : "; cin>>par; inserisci_in_albero(radice,par); cout<<"\nVuoi inserire una nuova parola (s/n) ? "; cin>>risp; }while(risp=='s'); getch(); return 0; } void inserisci_in_albero(albero * ax, parola px){ if(ax==NULL){ ax=new(albero); ax->p=px; ax->ptsx=NULL; ax->ptdx=NULL; } else{ if(regola(ax->p,px)) inserisci_in_albero(ax->ptsx,px); else inserisci_in_albero(ax->ptdx,px); } } int regola(parola par_nodo, parola py){ char r; cout<<"\nLa parola " <<py <<" la vuoi inserire alla destra o alla sinistra del nodo la cui parola e' " <<par_nodo <<" (s/d) ? "; cin>>r; if(r=='s') return 1; else return 0; }
Sia ax->p che px sono di tipo parola, cioè un tipo che ho costruito col typedef e definisce un vettore di caratteri di 20 elementi...
Poi mi sono accorto che la procdeura ricorsiva inserisci_in_albero nn funge e nn mi carica l'albero...qual è la procedura che mi permette di carica un albero con la ricorsione?

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando