Discussione: Pascal: Liste
View Single Post
Old 10-08-2003, 23:52   #4
cisc
Senior Member
 
L'Avatar di cisc
 
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
allora tu confronti massimo con il nodo attuale così:

if massimo^.info<p^.info then massimo:=p;

dato che devi mantenere un puntatore al massimo e a quello precedente, quando scorri la lista devi avere altri due puntatori, uno che punta al nodo precedente del nodo attuale e uno che punta al nodo precedetne del massimo, se vuoi risparmiarti un puntatore, invece di mantenerti un puntatore al massimo e uno al precedente, ti mantienti solo quello al precedente così:

if massimo^.next^.info<p^.info then massimo:=prec;

dove prec è il nodo precedente al nodo attuale e massimo punta al nodo precedente di quello effettivamente massimo.
per cancellare ti basta fare così:

c=massimo^.next;
massimo:=massimo^.next^.next;
dispose(c);

dove c è un puntatore allo stesso tipo.

ciao.
__________________
GNU MyServer Wants YOU!!
We live thinking we will never die. We die thinking we had never lived. Jason Becker
cisc è offline   Rispondi citando il messaggio o parte di esso