Implementació de la classe llista_paraules X57900


Statement
 

pdf   zip   tar

html

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.

Entrada

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.

Sortida

La sortida són les freqüències de les paraules que tindran el codi f a davant.

Observació

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.

Public test cases
  • 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
    
  • Information
    Author
    J. Baixeries
    Language
    Catalan
    Official solutions
    Unknown. This problem is being checked.
    User solutions
    Make