Sono riuscito a farlo funzionare, avete idee per migliorarlo?
codice:/*effettua cancellazione elemento*/ bool lista::cancella(int x) { nodo *s; l=eliminaprimo(l,x); s=l; eliminacentro(l,x); l=s; }; nodo* lista::eliminaprimo(nodo* l, int val) //elimina in modo ricorsivo i primi se sono uguali { if (val == l->valore){ l=l->succ; if(l!=NULL){ return eliminaprimo(l, val); } }; return l; }; nodo* lista::eliminacentro(nodo* l, int val) //elimina elementi dopo il primo { if(l!=NULL && l->succ!=NULL) if (val == l->succ->valore){ l->succ=l->succ->succ; return eliminacentro(l, val); }; };

Rispondi quotando