Cal implementar la classe llista_paraules. Aquesta
classe defineix un contenidor d’objectes paraula.
Per a implementar-ho feu servir un vector. La mida d’aquest vector
vindrà donada per un atribut de la classe que es diu
midaBloc, de manera que quan instanciem la classe
llista_paraules, contingui un vector de mida
midaBloc. Quan afegim un objecte de tipus
paraula a llista_paraules haurem de veure si
ja hi és. Si hi és, el que cal és augmentar la freqüència d’aquesta
paraula amb l’operador ++ que té la classe
paraula. Altrament, l’haurem d’afegir al vector de manera
ordenada. Però abans de fer això, haurem d’assegurar-nos que el
vector té prou espai. En cas que això no fos possible, caldria ampliar
en midaBloc la mida del vector.
Heu d’implementar la cerca d’una paraula a
llista_paraules amb una cerca dicotòmica.
Tingueu en compte que .size() torna un
unsigned int.
L’entrada és un enter que representa el valor que haurà de tenir
midaBloc i, tot seguit, una llista de parells (codi,
paraula). El codi pot ser a o f. En el
primer cas, voldrà dir que cal afegir la paraula que segueix a l’objecte
de tipus llista_paraules. En el segon cas, el que caldrà
fer és treure per pantalla la freqüència de la paraula que segueix per
pantalla.
La sortida són les freqüències de les paraules que tindran el codi
f a davant.
Cal enviar 1 sol fitxer: llista_paraules.cc que té la
implementació de la classe llista_paraules. Cal enviar-lo
com a fitxer .tar.
Us donem la implementació dels operadors >> i
+= de la classe llista_paraules al fitxer
ja_implementat.txt. Copieu-ne el contingut al fitxer
llista_paraules.cc que heu de lliurar.
La resta de fitxers us serviran per entendre el que fan la classe
paraula i la classe llista_paraules.
Tot i que en aquest exercici no és rellevant, fixeu-vos que podem
instanciar la classe llista_paraula sense el paràmetre
midaBloc, ja que aquest té un valor per defecte a la
definició de la constructora.
Input
5 a cup a psoe f juntspelsi f cup a cup a cup a juntspelsi a juntspelsi a qwerty a juntspelsi f pp a pp a cup a pp a psoe a qwerty a juntspelsi a juntspelsi f psoe
Output
0 1 0 2
Input
2 f p1 f p2 f p3 a p2 a p3 f p1 f p2 f p3 a p1 a p2 a p3 a p3 f p1 f p2 f p3 a p3 a p2 a p1 f p1 f p2 f p3 a p2 a p1 f p1 f p2 f p3 a p1 a p1 f p1 f p2 f p3
Output
0 0 0 0 1 1 1 2 3 2 3 4 3 4 4 5 4 4