Salve ragazzi sto tentando di fare una lista concatenata ma non riesco a fare la rimozione e in più il metodo add aggiunge sempre l'ultimo elemento se ciclo il metodo da furoi infatti ho n volte l'ultimo valore che è stato passato come parametro .vi linko il codice completo il problema mi si presenta nel metodo rimuovi
package LINKEDLIST;
public class linkedList<E> {
private nodo<E> fist;
nodo <E>last;
public linkedList() {
fist =null;
last =null;
}
public void addElement(E info){
nodo<E> app,copiaFist;
copiaFist= new nodo<E>();
copiaFist = fist;
if(fist==null){
app = new nodo<E>(info,fist);
fist = new nodo<E>(null,app);
}
else
{
while(copiaFist.next!=null)
copiaFist = copiaFist.next;
app = new nodo<E>(info,last);
copiaFist.next=app;
}
}
public E rimuoviElement(){
E app;
nodo<E> copyFist=fist;
if(fist==null) throw new LinkedListVuotaExpetion("la lista è vuota");
else{
while(copyFist.next!=null){
copyFist =copyFist.next;
}
app =copyFist.next.getInfo();
copyFist.next=last;
}
return app;
}
}
e se avete bisogno di vedere anche la classe nodo la allego qui :
package LINKEDLIST;
public class nodo<E> {
private E info;
nodo<E> next;
public nodo() {
this(null,null);
}
public nodo(E info, nodo<E> next) {
this.info=info;
this.next = next;
}
public E getInfo() {
return info;
}
public void setInfo(E info) {
this.info = info;
}
public nodo<E> getNext() {
return next;
}
public void setNext(nodo<E> next) {
this.next = next;
}
}