i punti a e b riesco a farli senza problemi, ma i punti c e d no. In particolare non riesco a creare un unica funzione che permetta di inserire i numeri, contenuti in lInt, in lPositivi se >=0, in lNegativi se <0. Il prototipo della funzione potrebbe essere: void dividi(lInt, lPositivi, lNegativi).

Qualcuno può aiutarmi?
Grazie mille
Ciao...per il punto c io farei così:
codice:
void Spartizione(TND* listaoriginale,TND* &pos,TND* &neg,int numpos,int numneg);
Dove numpos e numneg sono il numero di valorì positivi e negativi che ci sono all'interno della lista originale.In questo modo sai esattamente quanto spazio allocare.
Per il punto d farei una funzione del tipo
codice:
TND* valassoluto(TND* listaoriginale);
Prende in input la lista originale...sarebbe equivalente a prendere le due liste lPos e lNeg e restituisce una lista.

Ovviamente ti ho implementato solo i prototipi...ma da questi alla risoluzione dell'esercizio il passo è breve