Dato in input un file della seguente forma:
Parola1
Documento1 frequenza
Documento2 frequenza
Parola2
Documento2 frequenza
Documento4 frequenza
ParolaN
Documento5 frequenza
Documento7 frequenza
1. Leggere il file, caricando l'elenco dei documenti in un albero binario di ricerca. Ogni nodo
dell albero binario di ricerca conterra oltre alla parola una lista linkata relativa a tutti i
documenti che la contengono con le rispettive frequenze.
codice:
import java.io.*;
public class EsameB13giu07
{
public static void main(String [] args)
{
Albero al = new Albero();
Lista lista = new Lista();
FileReader f = null;
BufferedReader fIN = null;
try
{
f =new FileReader("elenco.txt");
fIN = new BufferedReader(f);
}
catch(Exception e)
{
System.out.println("Impossibile leggere il file");
System.exit(1);
}
try
{
String elenco = fIN.readLine();//leggo il file
while(elenco!=null)
{
String a[]=elenco.split(",");
if(a.length <=1)
{
String parola = a[0];
// invio alla classe pair i dati relativi alla lista e alla parola(non sono sicura se inviare //così la lista è giusto)
pair p1=new pair(parola,lista);
//inserisco la coppia di dati nell'albero
al.Inserisci(p1);
System.out.println("Inizio albero");
al.StampaGrafica();//Stampo l'albero(ma stampa solo un //nodo)
System.out.println("Fine albero ");
lista.clear();
}
else
{
String documento = a[0];
String frequenza = a[1];
System.out.println(" doc: "+documento+" freq: "+frequenza);
String totale=documento+" "+frequenza;
lista.Ins_Coda(totale);
System.out.println(" ......lista.....");
lista.Stampa();
System.out.println(" ...... fine lista.....");
}
elenco = fIN.readLine();
}
fIN.close();
}
catch(Exception e)
{
System.out.println("Errore in lettura");
System.exit(1);
}
//al.StampaGrafica();
//lista.Stampa();
}
}
Questa è l'altra classe:
public class pair
{
public String str;
public Lista lista;
public pair(String s, Lista l)
{
str=s;
lista=l;
}
public String getStr()
{
return str;
}
public Lista getLista()
{
return lista;
}
public void setStr(String s)
{
str=s;
}
public void setLista(Lista l)
{
lista=l;
}
public String toString()
{
return "parola: "+str+" "+lista;
}
}
Spero che ora sia più chiaro...