Això és el test de la classe memoriaBST
, que correspon a la pràctica
Simulació d’un SO.
Aquesta classe implementa una memòria clàssica, és a dir,
a un identificador de variable (del tipus string
)
li associa un valor (de tipus int
).
Cal que implementeu la classe memoriaBST
amb un arbre de cerca
(BST
vol dir binary search tree).
Per a fer-ho, possiblement caldrà que el valor que deseu a l’arbre
sigui una tupla <string, int>
, que haureu de definir
(potser amb alguna operació associada) al fitxer .hpp
.
Us passem el programa principal, que cridarà a una instància de la classe, i que cridarà els seus mètodes. Cal que:
void BST<T>::preOrdre(Item *node, vector<T>& R) const
que es troba al final del fitxer BST.cpp
.
IMPORTANT!!: Malgrat el nom, aquest mètode ha d’implementar el recorregut en INORDRE, i no pas el recorregut en preordre.
memoriaBST.hpp
.memoriaBST
al fitxer memoriaBST.cpp
.Fixeu-vos que l’enunciat d’aquest exercici ja ofereix uns fitxers que haureu d’utilitzar per a compilar: Makefile, program.cpp,
apart de les versions *.old
dels altres fitxers que heu
d’acabar d’implementar.
Quan pugeu la vostra solució al jutge, només cal que pugeu un tar construït així:
tar cf solution.tar memoriaBST.cpp memoriaBST.hpp BST.cpp
L’entrada és un nombre indeterminat de línies que poden ser:
SET var val
. Assigna el valor val
a la variable
var
si no existeix a la memòria. Si la variable ja hi és,
li assigna el valor val
.GET variable
. Cerca a la memòria el valor de la variable
var
.WRITE
. Escriu tots els parells variable,valor
que hi ha
a la memòria, en ordre per nom de variable.Input
SET m 10 SET n 20 SET n 30 SET m 20 SET x 50 SET y 25 WRITE GET m GET n GET x GET y WRITE
Output
m: 20 n: 30 x: 50 y: 25 GET: m: 20 GET: n: 30 GET: x: 50 GET: y: 25 m: 20 n: 30 x: 50 y: 25