Afegir a la classe ArbreGen l’operació que s’especifica
a continuació:
/**
* @pre: Cert.
*
* @post: En el paràmetre implícit s'han substituït totes les
* ocurrències de 'x' per 'y', i el resultat és el nombre
* de substitucions realitzades.
*/
int substituir(const T& x, const T& y);
(Trobareu el mètode sustituir al final del fitxer
ArbreG.hh.)
Els fitxers públics (icona del gatet) inclouen un .tar
amb main.cc, ArbreG.hh,
ArbreG-io.h i un Makefile. També s’inclou una
còpia dels jocs de prova públics per comoditat. A la carpeta on es
descomprimeixin es pot: compilar amb "make"; i testar amb
"make test".
El main.cc ja s’encarrega de llegir l’entrada, fer la
substitució i produir la sortida. Per lliurar, només és necessari pujar
al Jutge el vostre fitxer ArbreG.hh modificat.
L’entrada ja la gestiona main.cc i conté una seqüència
de substitucions, que comencen per la paraula "sust",
seguit del valor antic i el nou, seguit de l’arbre en un format generat
per ArbreG-io.hh (més fàcil de llegir i escriure).
La sortida també la gestiona main.cc i és una seqüència
amb els resultats de fer les substitucions en cada arbre, amb una frase
indicant el nombre de substitucions realitzades seguit de l’arbre
resultat.
Per tal de programar l’operació anterior, podríeu necessitar alguna
operació privada i possiblement static.
No utilitzeu cap operació primitiva d’ArbreGen. Accediu
directament als atributs de la classe per treballar.
Input
sust 2 6
1
|-- 2
| '-- 3
|-- 4
| |-- 5
| '-- 6
'-- 2
|-- 8
'-- 2
Output
Se han hecho 3 sustituciones
1
|-- 6
| '-- 3
|-- 4
| |-- 5
| '-- 6
'-- 6
|-- 8
'-- 6
Input
sust 0 8
0
|-- 0
|-- 1
'-- 0
|-- 0
|-- 0
| '-- 0
|-- 0
'-- 1
Output
Se han hecho 7 sustituciones
8
|-- 8
|-- 1
'-- 8
|-- 8
|-- 8
| '-- 8
|-- 8
'-- 1