Salve a tutti,
Il libro mi da il codice per creare una lista doppiamente concatenata. La nuova cosa è che io in questa lista posso accedere a qualunque nodo. In pratica l'elemento di un nodo è anche indice del nodo.
Però non ho capito i passi che ha fatto il libro per arrivare alla soluzione. Cioè ha implementato una interfaccia:
codice:
public interface Position<E>
{
E element();
}
Ora questa interfaccia la implementa nella classe del Nodo
codice:
Public class DNode<E> implements Position<E>
{
....................................................
public E element() {
if((prev==null) && (next == null))
throw new InvalidPositionException("La posizione non è in una lista");
return element;
}
.......................................................
}
Ora nella classe NodePositionList io ad esempio posso accedere al nodo che segue il nodo nella posizione p:
codice:
// restituisce la posizione dell'elemento che segue l'elemento in posizione p
public Position<E> next(Position<E> p)
Il metodo ha come parametro Position<E> p. Che sarebbe ? nodo.element() ?
Perché restituendo un elemento accedo al nodo che contiene quel elemento ?
p non è un puntatore che punta all'elemento selezionato ?
Non so se so stato chiaro.