Buongiorno a tutti. Ho provato a implementare la classe NodoLF, vi posto il codice
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;
}
}
può andare bene?
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);
}
}