ciao a tutti sono nuovo del forum ho un problema con le liste
dunque mi occorre un metodo ricorsivo che mi modifichi la lista invertendola "sul posto"
vi posto le classi nodo e lista ed un metodo ricorsivo che mi stampa la lista (assunta ordinata) senza ripetizioni
ho usato due metodi uno nella classe nodo che mi escludeva i nodi ripetuti
e un metodo nella classe lista per modificarla, mi occorrerebbe fare qualcosa del genere anche per invertirla ma non ci riesco proprio
n.b. mi è stato chiesto il non utilizzo di iteratori, solo metodi ricorsivi
vi ringrazio tutti in anticipo
ecco le classi di cui dispongo
questa è la classe nodo:
codice:
//modifica la lista senza ripetizioni (assumendo lista ordinata)
public class Nodo{
Object elemento;
Nodo next;
public Nodo(Object elemento,Nodo next) {
this.elemento=elemento;
this.next=next;
}
public Nodo (Object elemento) {
this.elemento=elemento;
this.next=null;
}
public Nodo copia(){
Nodo nuovo = new Nodo(elemento,next);
if (next==null) return nuovo;
else if ( !(this.elemento).equals(this.next.elemento) ){
nuovo.next=next.copia();
return nuovo;
}
else return next.copia();
}
}
questa è la classe lista:
codice:
//modifica la lista senza ripetizioni (assumendo lista ordinata)
public class Lista{
private Nodo header;
private int size;
public Lista(){
size=0;
}
public void modificaLista(){
if(size!=0) header=header.copia();
else header=null;
}
}