sommare? Guarda che nelle liste gli elementi sono allocati dinamicamente, quindi gli indirizzi dei vari elementi non sono certo sequenziali.Originariamente inviato da Neptune
Questa cosa non l'avevo pensata, ed è ottima come cosa, effettivamente questa possibilità per gestirla è stata una bella scocciatura.
Un'altra domanda sulle liste, secondo il corso teorico tra i vari operatori ho il metodo "inslista" che dovrebbe inserire un elemeneto prima della posizione "p" che gli viene passata. Dove la posizione è un indirizzo di memoria o un indice di un array.
Ora dice che in caso la lista è lunga N e gli viene passata la posizione N+1 deve praticamente accodare alla fine della lista. Quello che mi domandavo è "come gli passo la posizione N+1" ?
Cioè sugli array gli indici sono sequenziali e basta effettivamente sommare 1, ma se parliamo di una lista con puntatori, dove le posizioni sono locazioni di memoria, come faccio a sommargli 1?
Per dire: non puoi usare testa++ per ottenere l'indirizzo al primo elemento.
Ogni elemento, di norma, ha un puntatore "next" che punta a quello successivo
quindi se vuoi aggiungere in coda è sufficiente che fai
all'uscita del while avrai quindi l'ultimo elemento presente in coda (e quindi l'unico il cui next punta a null) e potrai aggiungerci quello che vuoicodice:temp = testa; while(temp.next!=null) temp = temp.next;

Rispondi quotando