ciao a tutti.
ho scritto questa funzione con lo scopo di scorrere una lista di coordinate e di eliminare eventuali elementi uguali e di sostituirli con altri generati in modo pseudo casuale.
le funzioni ncoord_couple_generation e delete_element rispettivamente servono per generare e per eliminare una coppia di coordinate e penso che non abbiano problemi.
ho devi problemi in fase di esecuzione perchè la lista non viene scorsa bene.
grazie per l'interessamento
codice:
int check(LISTCOORD_PTR *sptr, NICONST_PTR consts_ptr){
int c = 0;
LISTCOORD_PTR previousptr, currentptr;
previousptr = *sptr;
while (previousptr != NULL){
currentptr = previousptr->listcoordptr;
while(currentptr != NULL){
if(previousptr->ascissa == currentptr->ascissa && previousptr->ordinata == currentptr->ordinata){
c += 1;
delete_element(sptr, currentptr);
currentptr = ncoord_couple_generation(consts_ptr);
ncoord_insert(sptr, currentptr);}
currentptr = currentptr->listcoordptr;}
previousptr = previousptr->listcoordptr;}
if (c != 0)
return 1;
else
return 0;
}
struct listcoord
{
double ascissa;
double ordinata;
struct listcoord* listcoordptr;
}listcoord;
typedef struct listcoord LISTCOORD;
typedef LISTCOORD *LISTCOORD_PTR;