Buongiorno a tutti. Ho provato a implementare la classe NodoLF, vi posto il codice
può andare bene?codice:import java.util.ArrayList; public class NodoLF<T> { private T info; // Contiene l'informazione del nodo. private ArrayList<NodoLF> figli; // Array contenente i figli, può essere vuota per i nodi foglia. private NodoLF padre; // Radice dell'albero. Riferimento NULL. public NodoLF(T x){ info=x; } public T getInfo(){ return info; } public void setInfo(T x){ info=x; } public void setPadre(){ padre=null; } }
Mentre nella classe AlberoLF ho fatto questo per ora
codice:public class AlberoLF<T> { private NodoLF<T>[] nodi=new NodoLF[0]; private NodoLF<T>[] padri=new NodoLF[0]; // Metodo che restituisce la lista dei figli di un nodo n. Sarebbe il punto 7. public ArrayList<NodoLF<T>> figli(NodoLF<T> n){ ArrayList<NodoLF<T>> figli = new ArrayList<NodoLF<T>>(); if(n==null){ return figli; } for(int i=0;i<numNodi();i++){ if(padri[i]==n){ figli.add(nodi[i]); } } return figli; } // Punto 1; Restituisce il numero dei nodi presenti nell'albero. public int numNodi(){ return nodi.length; } // Punto 2; Restituisce il numero dei figli di un nodo. Al metodo gli passo un nodo n. public int numFigli(NodoLF<T> n){ return figli(n).size(); } // Punto 3; Restituisce il contenuto di un nodo. Gli passo un nodo n e mi restituisce il suo contenuto attraverso la funzione getInfo. public T infoNodo(NodoLF<T> n){ return n.getInfo(); } // Punto 4; Cambia il contenuto di un nodo. Gli passo al metodo il nodo n a cui devo cambiare il contenuto (l'informazione) e l'informazione che devo assegnare al nodo n. public void changeInfo(NodoLF<T> n, T info){ n.setInfo(info); } }

Rispondi quotando