Salve a tutti! Sto provando a svolgere degli esercizi sulle liste, e a quanto pare non riesco ad effettuare l'eliminazione degli elementi.
L'esercizio chiede di eliminare dalla lista ogni elemento la cui distanza dal precedente sia minore di K, in cui K è un intero che viene passato alla funzione.
Questo è il codice che ho scritto, e che ovviamente non funziona:
codice:
void lista::distanzak(int k){
nodo *p,*prec,*del;
p=l;
while (p->succ!=0){
prec=p;
p=p->succ;
if ((p->valore<(prec->valore-k))|| (p->valore>(prec->valore+k))){
del=p;
p=p->succ;
delete del;
}else p=p->succ;
}
}