Per generare un albero casuale, usare queste due funzioni:
TipoAlbero GeneraAlbero(int n) { TipoAlbero a; if(rand()%(n+1)==0) return NULL; return GeneraAlberoRic(n); }
TipoAlbero GeneraAlberoRic(int n) { TipoAlbero a; int i; a=malloc(sizeof(struct NodoAlbero)); a->info=rand()%100-30; if(n>0) a->numfigli=rand()%5; else a->numfigli=0; a->figli=malloc(sizeof(struct NodoAlbero *)*a->numfigli); for(i=0; i<a->numfigli; i++) a->figli[i]=GeneraAlberoRic(n-1); return a; }
Per testare le funzioni: generare un albero casuale, stamparlo, chiamare la funzione e verificare il risultato. Non è necessario sapere perchè queste due funzioni di sopra sono corrette.