Un file di tipo testo vocaboli.txt contiene un elenco di parole uniche, una su ciascuna linea. Un secondo file binario (indice.bin) contiene record composti da parola e pagina (valore intero) in cui è citata la parola. Ogni parola compare una sola volta nel primo file, ma può comparire più volte nel secondo.
Tutte le parole sono stringhe contenenti al massimo 20 caratteri, incluso il terminatore.
Si scriva un programma C strutturato in (almeno) tre funzioni dedicate rispettivamente a:
funzioneA
riceve il puntatore al primo e al secondo file, più altri parametri a
scelta, e restituisce un albero T;
funzioneB
ha come parametri
il puntatore all'albero T e la stringa trovata, più altri parametri a scelta, e
restituisce il campo intero associato;
funzioneC
ha come parametri il puntatore all'albero T, il puntatore al file di uscita (più
eventuali altri a scelta) e restituisce un intero che viene poi stampato dal
main
.
Si inseriscano le prime cinque
parole con iniziale 'a'
in un vettore V di stringhe di dimensione 5, si ordini
tale vettore di stringhe in ordine crescente e se ne stampi il contenuto a
video; la funzioneD
ha come parametri il puntatore all'albero T e il vettore di
stringhe V (più eventuali altri a scelta) e restituisce void. Qualora nell'albero
ci siano meno di 5 parole che iniziano col carattere 'a'
, si inseriscano nell'array
V tutte le parole che iniziano per 'a'
e si stampino tali parole.
È possibile utilizzare librerie C (ad esempio per le stringhe).
Nel caso si strutturi a moduli l'applicazione qualunque libreria utente va riportata nello svolgimento.