andbin ho risolto
ho seguito il tuo consiglio e mi sn inventato una cosa hehe :P
ecco come ho risparmiato 50righe:
grazie mille per i consigli e la pazienzacodice:private nodo check_posizione(persona nuova){ nodo precedente=null, successivo=start ; while(successivo!=null && check("cognome",nuova,successivo)>0){precedente=successivo;successivo=successivo.link;} while(successivo!=null && check("cognome",nuova,successivo)==0){ while(successivo!=null && check("cognome",nuova,successivo)==0 && check("nome",nuova,successivo)>0){precedente=successivo;successivo=successivo.link;} while(successivo!=null && check("cognome",nuova,successivo)==0 && check("nome",nuova,successivo)==0){ while(successivo!=null && check("cognome",nuova,successivo)==0 && check("nome",nuova,successivo)==0 && check("anno",nuova,successivo)>0){precedente=successivo;successivo=successivo.link;} return precedente; } return precedente; } return precedente; } private int check(String dato, persona nuova, nodo successivo){ if ("cognome".equals(dato)){return nuova.cognome.compareTo(successivo.info.cognome);} else if("nome".equals(dato)){return nuova.nome.compareTo(successivo.info.nome);} else if("anno".equals(dato)){ if(nuova.anno>successivo.info.anno){return 1;} else if(nuova.anno==successivo.info.anno){return 0;} else{return -1;}} return 0; }
angelo


Rispondi quotando