Pages: [1]   Go Down
Print
Author Topic: Prova file di oggetti stringhe  (Read 632 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
TheSpecialOne
Apprendista Forumista
**
Offline Offline

Posts: 232



« on: 06-06-2009, 10:43:40 »

Ho provato a svolgere la prova relativa ad un file di oggetti stringa

Dato un file di oggetti stringa, leggere ogni oggetto e:
Costruire un albero binario di ricerca dei suffissi di lunghezza 2, ogni nodo contiene la coppia <parola, suffisso>
Costruire un albero binario di ricerca dei prefissi di lughezza 2, ogni nodo contiene la coppia <parola, prefisso>
Code:
public static void method1 (String filename, BT Ts, BT Tp)
{
      boolean continua=true;
      try
     {
            ObjectInputStream IO=new ObjectInputStream (new FileInputStream ("filename.txt"));
            while (continua)
            {
                   Object s=IO.readObject();
                   Ts.insert (s.getParola(), s.getSuffisso());
                   Tp.insert (s.getParola(), s.getPrefisso());
            }
            IO.close();
     }
      catch (IOException e)
     {
            e.printStackTrace();
     }
}

Visitare gli alberi ed eliminare dall’albero dei suffissi le parole che sono contenute nei due alberi nella stessa posizione
Code:
public static void method2 (BT Ts, BT Tp, BTNode s, BTNode p)
{
      LinkedList L=new LinkedList();
      if (s==null)
          return;
      if (p==null)
          return;

      method2 (Ts,Tp,s.getLeft(),p.getLeft());
      method2 (Ts,Tp,s.getRight(),p.getRight());

      if (s.getInfo().getParola().equals (p.getInfo().getParola())
            L.insertTail (Ts.delete (s));

      return;     
}

Ordinare usando bubble sort le parole eliminate
Code:
public static void method3 (LinkedList L)
{
      String [] A=new String [];
      copyToArray (L,A,0);                // METODO PER COPIARE SU UN ARRAY IL CONTENUTO DELLA LISTA
      bubbleSort (A);
}

MAIN:
Code:
public static void main (String [] args)
{
      BT Ts=new BT();
      BT Tp=new BT();
      method1 (filename,Ts,Tp);
      method2 (Ts,Tp,Ts.getRoot(),Tp.getRoot());
      method3 (L);
}

Metodo per copiare il contenuto della lista in un array
Code:
public void copyToArray (LinkedList L, String [] A, int i)
{
      ListNode aux=L.getHead();
      for (; aux!=null; aux=aux.getNext())
     {
            A[i]=aux.getInfo();
            i++;
     }
     return;
}
Logged
Pages: [1]   Go Up
Print
Jump to: