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?