In un esercizio ho queste due in terfacce da implementare:
Si realizzi un'implementazione delle due interfacce TNode<E> e Tree<E> mostrate nella
pagina seguente. Le implementazioni fornite, che dovranno essere denominate
rispettivamente ArrayTNode<E> e ArrayTree<E>, dovranno utilizzare un array per la
memorizzazione dei nodi dell'albero. I singoli nodi dovranno quindi risiedere all'interno di
un array mentre i puntatori ai nodi firstSon, sibling e parent dovranno essere espressi
attraverso indici dell'array.
In seguito si realizzi un programma Java che preso in input un file contenente una lista di
nomi (composti da nome e cognome) costruisca un albero completo (ArrayTree<String>)
dove ogni nodo possiede esattamente 3 figli. Gli elementi verranno forniti in modo da
costruire l'albero procedendo per livelli (dalla radice alle foglie), e costruendo ciascun livello
da sinistra verso destra.
Il programma dovrą stampare in un file di output la visita preorder dell'albero ottenuto,
utilizzando il metodo toString() della classe ArrayTree.
Input
Intanto mi chiedevo il metodo addchild č scritto bene?codice:public interface TNode<E> { public E element(); // ritorna il valore dell'elemento contenuto nel nodo public int sibling(); // ritorna l'indice nell'array del successivo fratello public int firstSon(); // ritorna l'indice nell'array del primo figlio public int addChild(); // inserisce un nuovo figlio in coda alla lista dei figli public int parent(); // ritorna l'indice nell'array del nodo padre public int degree(); // ritorna il numero di figli del nodo public void setElement(E element); // setta il valore dell'elemento contenuto nel nodo } public interface Tree<E> { public int size(); // ritorna il numero di nodi presenti nell'albero public TNode<E> root(); // ritorna il nodo radice dell'albero public String toString(); // stampa l'albero, un elemento per riga, utilizzando una visita poreorder public TNode<E> search(E val); // ritorna il nodo che contiene il valore val, null altrimenti public E minimum(); // ritorna il valore minore presente nell'albero }
Cioč non dovrebbe avere un parametro?
Per come č fatto l'esercizio, quel metodo deve restituire secondo voi l'indice in cui inserire nell'array il figlio? oppure proprio deve inserirlo papale papale?
Non capisco come fare se la vostra risposta č la seconda, perchč io sono in una classe nodo, e come faccio a far capire al metodo che deve inserirlo nell'array che poi utilizzerņ come albero? :master:
E poi, nell'esercizio praticamente con il toString si deve fare una visita preorder, ma non si parla di iteratori, su un array posso realizzare senza iteratori una visita di quel tipo? Perchč il problema č che dovrei fare la stampa ricorsivamente solo sui figli e tornare poi agli altri nodi....![]()

Rispondi quotando