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.