Due file di testo,
parole1.txt
e
parole2.txt
, contengono alcune parole della lingua italiana. I due file non sono ordinati e ogni parola può
ripetersi sia in un file sia in entrambi i file.
Le parole sono al più di 20 caratteri, senza spazi.
Si realizzi un programma C, organizzato in almeno due funzioni, rispettivamente dedicate a:
costruire in memoria centrale un albero binario di ricerca T, ordinato sul campo parola, che riporta ogni parola comune ai due file una sola volta. Nota bene: se la parola è già presente nell'albero non va inserita nuovamente; la funzioneA riceve come parametri i puntatore a file, più eventuali parametri a scelta, e restituisce il puntatore radice dell'albero T;
accedendo a T, stamparne il contenuto in un file di uscita, uscita.txt, da consegnare con il codice sorgente, che riporta l'elenco ordinato delle parole comuni; questa funzione ( funzioneB) riceve il puntatore radice dell'albero T, il puntatore al file, più eventuali parametri a scelta, e restituisce void.
Per chi svolge il compito A+B (+45 min, tot 2,5 h):
Nel file
parole1.txt
ci sono almeno 5 parole distinte tra loro che non compaiono nell'albero T.
Si inseriscano le prime 5 parole di questo file che non compaiono nell'albero T in un vettore V (di dimensione 5).
Ordinare il vettore V tramite una opportuna chiamata della funzione qsort.
e stampare poi il contenuto del vettore V su file di testo, outputAB.txt, da consegnare con il codice sorgente;
questa funzione ( funzioneC) riceve come parametri il vettore V e i puntatori ai due file, più eventuali parametri a scelta, e restituisce void.
NOTA BENE:
Si consegnino i sorgenti, eseguibile e i file di uscita generati.
È possibile utilizzare librerie C (ad esempio per le stringhe). Nel caso si strutturi a moduli l'applicazione qualunque libreria utente va riportata nello svolgimento.
File translated from
TEX
by
TTH,
version 4.03. On 8 Jun 2014, 12:07.