Ciao,
creaListaElementiMaggioriSommaPrecedenti: metodo che crea una NUOVA lista contenente copia degli elementi della lista data che sono MAGGIORI della somma degli elementi precedenti!
versione ricorsiva funzionante:
codice:
public MiaLista creaListaElementiMaggioriSommaPrecedenti(){
MiaLista lista=new MiaLista();
if(first==null)
throw new IllegalArgumentException("Lista vuota");
eliminaMinoriSomma(lista, first, first.dato);
return lista;
}
private void eliminaMinoriSomma(MiaLista lista,ListElem index, int somma){
if(index==null)
return;
eliminaMinoriSomma(lista, index.next, somma+index.dato);
if(somma<=index.dato)
lista.insert(index.dato);
}
versione iterativa non funzionante come mai?
codice:
public MiaLista creaListaElementiMaggioriSommaPrecedenti(){
ListElem index = first;
MiaLista lista = new MiaLista();
int somma=0;
if(first==null)
throw new IllegalArgumentException("Lista vuota");
while(index != null) {
somma=somma+index.dato;
if(somma<=index.dato) {
lista.insert(index.dato);
}
index = index.next;
}
return lista;
}
la mia domanda è coma non mi funziona la versione iterativa???
Grazie