nell'insert ho scritto il seguente codice:

codice:
		Entry q = (Entry)firstList();
		
		while(!endList(q))
		{
			if((Entry)p==q)
				break;
			
			q=(Entry)succ(q);
		}
		
		Entry nuovo = new Entry(e);
		
		nuovo.precedente = q; //punto indietro a q (in quanto lo inserisco dopo q)
		
		//se q ha un successivo
		if(q.successivo != null){
			nuovo.successivo = q.successivo; //in avanti punto al successivo di q
			q.successivo.precedente = nuovo; //il successivo di q punta indietro al nuovo
		}
		
		q.successivo = nuovo;
		
		n++;
Ho provato a testare con il codice seguente
codice:
		ListaExt list = new ListDoubleLinkedExt();
		
		System.out.println("Creazione di lista 1");
		System.out.println("la lista inizialmente e' vuota: " + list.isEmpty()+ "\n");
		
		list.insert("ultimo", list.firstList());
		list.insert("b", list.firstList());
		list.insert("c", list.firstList());
		list.insert("d", list.firstList());
		list.insert("e", list.firstList());
		
		System.out.println("Stampo tutti gli elementi: ");
		Posizione p = list.firstList();
		while(!list.endList(p))
		{
			System.out.println(list.readList(p));
			p=list.succ(p);
		}
		
		System.out.println("\nprimo lista: " + list.readList(list.firstList()));
		System.out.println("fine lista: " + list.readList(list.lastList()));
Ma stampa:
Creazione di lista 1
la lista inizialmente e' vuota: true

Stampo tutti gli elementi:
ultimo
e
d
c

primo lista: ultimo
fine lista: b



E' chiaramente sbagliato! Dove sbaglio?