|
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.
|