Ciao a tutti. Devo realizzare un progetto in Java, che richiede questo:"Negli alberi puo' capitare di non sapere a priori il numero dei figli di ciascun nodo. E' possibile quindi associare ad ogni nodo una lista di puntatori ai suoi figli. La lista a sua volta puo' essere rappresentata con una struttura indicizzata o con una struttura collegata.
Dopo aver realizzato opportunamente una classe NodoLF, utilizzarla per la realizzazione di una classe ALberoLF che implementi i metodi per le seguenti operazioni caratteristiche degli alberi:" e uno di questi metodi è "restituire la radice dell'albero"
Allora, io ho realizzato la classe NodoLF in questa maniera:
codice:
public class NodoLF<T> {
private int indice;
private T info;
// Realizzazione del costruttore
public NodoLF(T x){
info = x;
}
public int getIndice(){
return indice;
}
public T getInfo(){
return info;
}
public void setIndice(int n){
indice = n;
}
public void setInfo(T x){
info = x;
}
}
e il metodo l'ho realizzato cosi:
codice:
public class AlberoLF<T> {
private NodoLF<T>[] padri = new NodoLF[0];
private NodoLF<T>[] nodi = new NodoLF[0];
public NodoLF<T>[] getPadri(){
return padri;
}
public NodoLF<T>[] getNodi(){
return nodi;
}
// Punto 5; Restituisce la radice dell'albero.
public NodoLF<T> radice(){
NodoLF<T> radice = null;
int i=0;
while(padri[i]!=null)
i++;
radice=nodi[i];
return radice;
}
Ho trovato anche questo per la restituzione dei figli di un nodo
codice:
// Punto 7; Restituisce la lista dei figli di un nodo.
public LinkedList<T> figli(NodoLF<T> v){
LinkedList<T> figli = new LinkedList<T>();
// Controllo per generare la lista dei figli
if(v==null)
return figli;
for (int i=0;i<numNodi();i++)
if(padri[i]==v)
figli.add(nodi[i].getInfo());
return figli;
}
ma non sono sicuro di come è implementata, l'ho ripresa da una gia fatta, in quanto qui si usa un vettore, mentre a me occorre una lista. Ma non capisco come poter implementarlo con una lista.
Grazie a tutti