Ciao, innanzitutto vi ringrazio per i consigli. Ho preso spunto dal codice di turn24 ed ho riscritto così la funzione dividi:
praticamente identica con qualche accorgimento "estetico" javascript:void(0);codice:void dividi(TLISTA *lista, TLISTA *lPos, TLISTA *lNeg){ TLISTA *temp; temp=lista; while(temp!=NULL){ if(temp->val>=0){ lPos=addLista(lPos, temp->val); if(lPos==NULL){ puts("Puntatore non restituito!"); } } else{ lNeg=addLista(lNeg, temp->val); } temp=temp->next; } printf("\n\n Lista 'lPos':\n\n"); printLista(lPos); printf("\n\n Lista 'lNeg':\n\n"); printLista(lNeg); }
la funzione funziona perfettamente.
Ho creato la funzione insABS per inserire nella lista lABS il valore assoluto di tutti i numeri presenti nella lista iniziale lInt:
funzione corretta ma vorrei eliminare i duplicati e non so come fare. Qualcuno saprebbe consigliarmi?codice:TLISTA *insABS(TLISTA *lista){ TLISTA *temp; TLISTA *j; j=NULL; temp=lista; while(temp!=NULL){ if(temp->val<0){ temp->val=-(temp->val); } else{ temp->val=temp->val; } j=addLista(j, temp->val); temp=temp->next; } return j; }
Grazie mille

Rispondi quotando