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:
e il metodo l'ho realizzato cosi: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; } }
Ho trovato anche questo per la restituzione dei figli di un nodocodice: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; }
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.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; }
Grazie a tutti

Rispondi quotando