/************************************************** *********************
TESTO DELL'ESERCIZIO
Seguendo le indicazioni, completare il seguente metodo scriviLivelloNodi che elenca in un file tutti i
nodi dell'albero su cui viene chiamato specificando per ciascuno il livello a cui si trova.
L'oggetto File corrispondente al file su cui scrivere viene passato come paramentro al metodo.
In tale file dovra' comparire pertanto un elenco nella forma
(N1,L1)
(N2,L2)
(N3,L3)
...
dove N1, N2, N3... sono gli interi contenuti nei nodi dell'albero, e Lx e' il livello a cui e' stato
trovato il dato Nx.
Per implementare il metodo richiesto ti sara' necessario aggiungere un altro metodo di supporto
che si occupi di visitare l'albero ed eseguire per ciascun nodo le operazioni richieste. Si suggerisce
di progettare tale metodo di supporto in modo ricorsivo.
************************************************** ***********************/
public void scriviNelFile(File name,int nodo,int livello) {
try {
FileOutputStream file = new FileOutputStream(name);
PrintStream Output = new PrintStream(file);
Output.println("("+nodo+","+livello+")");
}
catch(FileNotFoundException e) {
System.out.println("Errore scrittura sul file.txt!!"+e);
}
}
public void scriviLivelloNodi(File name) {
BinaryNode node = root;
// Passo 1: apri il file in scrittura
try {
//apro file in scrittura
FileWriter prova = new FileWriter(name);
int nodo=0;
int livello=-1;
// Passo 2: chiama un opportuno metodo di supporto (che dovrai implementare) che si occupa di scrivere
// nel file i dati richiesti per ciascun nodo dell'albero
if(node.getLeftChild()!=null || node.getRightChild()!=null) {
livello++;
nodo=node.getDato();
scriviNelFile(name, nodo,livello);
}
//Passo 3: chiudi il file
prova.close();
}
catch(IOException e) {
e.printStackTrace();
}
}
domanda: perchè nel file txt vedo solamente il primo (nodo,livello)?

Rispondi quotando