La cosa strana è che se faccio la stessa cosa per l'inserimento (usando i puntatori):
codice:
void lista::push(int x)
{
l=insert(l,x);
};
/*Inserisce gli elementi in modo disordinato (inserimento in testa)*/
nodo* lista::insert(nodo *p,int x)
{
nodo *q;
cout<<"insert:versione con inserimento in testa"<<endl;
q=new nodo; //alloca un elemento;il suo indirizzo è q;
q->valore=x;
q->succ=p;
p=q;
return p;
};
In questo caso me lo modifica, anche se poi vado nel menù stampa, oppure ne aggiungo altri, me li stampa.
Cioè, anche in questo caso dovrebbe dare lo stesso prob. , però è perfetto XD.
Riguardo il codice:
codice:
node* elimina(node* n, int val)
{
if (val == n->valore)
return n->next;
else
return elimina(n->next, val);
}
Credo che l'unico prob. è se ci siano doppioni.
Cioè in questo caso se trovo il primo valore corrispondente si ferma e mi riporta il puntatore al successivo, ma poi non mi elimina gli altri.
Sto impazzendo davanti questo prog.
.