Ciao a tutti, non riesco a implementare una classe DIZIONARIO che faccia uso di una lista concatenata
a puntatori espliciti, questa classe deve implementare l'interfaccia iterator. La lista deve contenere
in ordine crescente ogetti PAROLA. Quindi la classe dizionario deve contere i metodi:

public void add(Parola p) // per inserire in ordine le parole

public Iterator iterator()

public boolean hasNext()

public object next()

public void remove()

Io ho pensato di fare cosìì, ma mi da errore nel metodo add e non so neanche se la logica
del programma è giusta!!! Una cosa del genere era al testo d'esame dove mi hanno bocciato
e sono sicuro che ridarà di nuovo una cosa del genere, vi prego HELP!!


import java.util.Iterator;


class Nodo{
Object info;
Nodo next;
}//Nodo

public class Dizionario_Concatenato {

Nodo testa;


public Dizionario_Concatenato(){
testa=null;
}//costruttore


public Iterator iterator() {
return new Iterator();
}//iterator




public void add(Parola p) {
Nodo cor=testa; Nodo prec=null;
Nodo nuovo=new Nodo();
if(testa==null){
nuovo.info=p;
nuovo.next=testa;
testa=nuovo;
return;
}
Iterator iteratore=iterator();
int c=0;
while(iteratore.hasNext()){
Parola corrente=(Parola)iteratore.next();

c=corrente.compareTo(p);
if(c>0){
nuovo.info=p;
nuovo.next=cor;
prec=nuovo;
}

}
}//add





public class Iterator{

private Nodo cor;
private Nodo prec;

public Iterator(){
cor=testa;
prec=null;
}//costruttore


public Object getFirst(){
if(testa==null)
return null;
return testa.info;
}//getFirst


public boolean hasNext() {
if(cor==null)
return testa!=null;
else
return cor!=null;

}//hasNext


public Object next(){
if(testa==null){
cor=testa;
return getFirst();
}
else{
if(cor.next==null)
return null;
prec=cor;
cor=cor.next;
return cor.info;
}
}//next


public void remove() {
if(cor==testa)
testa=cor.next;
prec.next=cor.next;
}//remove

}//ITERATOR


}//DIZIONARIO_CONCATENATO

CIAO E GRAZIE A TUTTI!