ciao a tutti ragazzi.. ho questo problema (sul quale sto girando da 2 ore ma non ne vengo a capo..), sono sicuro che sia una stupidaggine.. ma non la riesco a cogliere!
allora:
ho una classe nodo:
la classe persona ha 3 campi: cognome nome ed anno,codice:class nodo{ persona info; nodo link; }
e una clase lista, quando inserisco cognome nome ed anno di nascita mi crea la persona e ci associa i valori, poi richiama rubrica.add(); che e' questa:
la parte in grassetto e' questa funzione:codice:public void add(persona nuova_persona){ if(start==null){ start=new nodo(); start.info=nuova_persona; start.link=null; } else{ nodo new_nodo=new nodo(); new_nodo.info=nuova_persona; nodo attacco=check_posizione(nuova_persona); if(attacco==start){new_nodo.link=attacco.link;System.out.println("ATTACCO == START LINK => new_nodo.link=attacco.link");} else{new_nodo.link=attacco.link;} if(attacco==start){start=new_nodo;System.out.println("ATTACCO == START => attacco=new_nodo");} else{attacco=new_nodo;} } }
e' tutto abbastanza semplice, ma NON FUNZIONA!codice:private nodo check_posizione(persona nuova){ nodo precedente, successivo, posizione; precedente=start; successivo=start; posizione=start; if(check_cognome(nuova,start)<=0){posizione=start;return posizione;} else{ precedente=successivo; successivo=start.link; while(successivo!=null && check_cognome(nuova,successivo)>0){ precedente=successivo; successivo=successivo.link; } if(successivo==null){posizione=successivo;return posizione;} else if(check_cognome(nuova,successivo)<=0){posizione=precedente;return posizione;} } return posizione; }
se ad esempio inserisco prima Rossi Mario 9999 e poi inserisco Bianco Marco 9999 quando vado a stampare tutta la lista mi stampa solo Bianco Marco, come se non funzionasse "attacco.link".... ma quando lo lancio i debug che ho messo per controllare funzionano..quindi l'associazione la fa', ma nn sembra.... qualcuno ha qualche idea?
grazie in anticipo![]()



, in che modo risparmio tempo vi chiederete voi, beh semplicemente ora che ho risolto vado a rifinire la classe 