a occhio sembra che nel passaggio
il puntatore predec punti a NULL, pertanto c'e' l'errore.codice:predec->dato=A[i]; predec->sx=NULL; predec->dx=NULL;
Comunue usa nomi "sensati" per le variabili :'( please, ogni volta che si legono questi codici ci si perde sempre tempo a capire cos'e' P o A o Z o V, un bel nome tipo Puntatore_Testa oppure Root_Pointer o Root_P, cosa simile, pleeeeeeeease :'(