Il problema è questo: non riesco a collegare l'elemento che precede l'elemento da eliminare e quello che lo segue.Originariamente inviato da alka
Il mio consiglio è questo: quando scandisci la lista alla ricerca dell'elemento da cancellare, memorizzi ad ogni iterazione il puntatore all'elemento precedente di quello che stai analizzando. Se hai trovato l'elemento da cancellare, utilizzi il puntatore dell'elemento precedente facendo in modo che esso punti all'elemento che segue quello che stai per cancellare con Dispose().
p-->2-->3-->6-->NIL
Se elimino il 3 (solo con il dispose):
p-->2--> -->6-->NIL
In pratica il 2 e il 6 non sono collegati.Dovrei fare così:
p-->2-->6-->NIL
Ma come in termini di codice? Quando lavori con una pila (LIFO= Last In First Out) è facile fare l'eliminazione, perchè l'elemento da eliminare è quello puntato dalla testa (p).Per collegare p all'elem. succ. basta fare p:=p^.pun.
Ma non riesco a capire come devo tenere unita tutta la lista quando elimino un elemento che si trova in altre posizioni.