Salve, sono agli inizi della programmazione e vorrei che qualcuno mi spiegasse questa funzione perché non la capisco. Gli passo due puntatori della lista per riferimento e devo metterli dal maggiore al minore il primo n che ha un nodo solo e che via via va ad aggiungere nodi a p. Per qualsiasi altra informazione fatemelo sapere.
Ecco il codice:
codice:
void Insord(Snodo**p,Snodo**n){
	
	if(*p==0)
		instesta(p,n);
	else{
		Snodo*prec=0;
		Snodo*cor=*p;
			while(cor){
				if(cor->info.npet >(*n)->info.npet)
					break;
				prec=cor;
				cor=cor->next;
				if(prec==0)
					instesta(p,n);
				else
					instesta(&(prec->next),n);
			}
	}
}