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