La funzione proposta svolge se inserisco un primo elemento se voglio inserire altri elementi si perdono i puntatori. posto sia la funzione che la struttura.grazie per l' aiuto.
struct nodoalbero{
int info;
int numfigli;
struct nodoalbero **figli;
};
struct nodoalbero *inserimentoAlbero(struct nodoalbero *radice,int padre,int figlio){
int i=0;
if(radice==NULL){
radice=(struct nodoalbero *)malloc(sizeof(struct nodoalbero));
radice->info=figlio;
radice->numfigli=0;
radice->figli=(struct nodoalbero **)malloc(sizeof(struct nodoalbero *)*radice->numfigli);
}else
if(radice->info==padre){
radice->figli=(struct nodoalbero **)realloc(radice->figli,radice->numfigli+1);
radice->numfigli+=1;
radice->figli[radice->numfigli]=newnodo(figlio);
return radice;
}else{
for(i=0;i<radice->figli[i];i++)
radice->figli[i]=inserimentoAlbero(radice->figli[i],padre,figlio);
}
return radice;
}
struct nodoalbero *newnodo(int x){
struct nodoalbero *e=NULL;
e=(struct nodoalbero *)malloc(sizeof(struct nodoalbero));
e->info=x;
e->numfigli=0;
e->figli=(struct nodoalbero **)malloc(sizeof(struct nodoalbero *)*e->numfigli);
return e;
}