ok grazie a questo punto posto il codice nell'ordine in cui lo legge il debug...
allora sono un pollo, ho trovato il bandolo della matassa, mentre riscrivevo qui il codice mi sono accorto cosa mancava!! Comunque a scopo informativo lo riporto comunque!
main:
classe AlberoLF<T>codice:import java.util.*; public class TestAlberiLF { public static void main(String[] args){ AlberoLF<Integer> tree=new AlberoLF<Integer>(); NodoLF<Integer> root=tree.addRoot(9);
codice:public class AlberoLF<T> { private NodoLF<T> root; [.....] //Metodo addRoot, aggiunge il valore data di tipo T ad un nuovo oggetto ti tipo Nodo public NodoLF<T> addRoot(T data){ NodoLF<T> tmp=new NodoLF<T>(data); addNode(null,tmp); return tmp; } //Metodo addNode, aggiunge alla coda di un nodo preesistente (o null in questo caso public NodoLF<T> addNode(NodoLF<T> nodoOld, NodoLF<T> nodoNew){ if (nodoOld==null)//mancava questo nodoOld=new NodoLF<T>();//e questo nodoNew.setGenitore(nodoOld); if(nodoOld.getPrimoFiglio()==null){ nodoOld.setPrimoFiglio(nodoNew); return nodoNew; } else nodoOld=nodoOld.getPrimoFiglio(); while (nodoOld.getProssimoParente()!=null){ nodoOld=nodoOld.getProssimoParente(); } nodoOld.setProssimoParente(nodoNew); return nodoNew; } //setGenitore, passando al metodo un nodo il metodo lo collega ad un nodo precedente public void setGenitore(NodoLF<T> nodo){ this.genitore=nodo; }

Rispondi quotando