Añadir a la clase ArbreGen la operación que se
especifica a continuación:
/**
* @pre: Cierto.
*
* @post: En el parámetro implícito se han sustituido todas las
* apariciones de 'x' por 'y', y el resultado es el número
* de sustituciones realizadas.
*/
int sustituir(const T& x, const T& y);
(Encontraréis el método sustituir al final del fichero
ArbreG.hh.)
Los ficheros públicos (icono del gatito) incluyen un
.tar con main.cc, ArbreG.hh,
ArbreG-io.h y un Makefile. También se incluye
una copia de los juegos de prueba públicos por comodidad. En la carpeta
donde se descompriman se puede: compilar con "make"; y
testear con "make test".
El main.cc ya se encarga de leer la entrada, hacer la
sustitución y producir la salida. Para entregar, solo es necesario subir
al Jutge vuestro archivo ArbreG.hh modificado.
La entrada ya la gestiona main.cc y contiene una
secuencia de sustituciones, que empiezan por la palabra
"sust", seguido del valor antiguo y el nuevo, seguido del
árbol en un formato generado por ArbreG-io.hh (más fácil de
leer y escribir).
La salida también la gestiona main.cc y es una secuencia
con los resultados de hacer las sustituciones en cada árbol, con una
frase indicando el número de sustituciones realizadas seguido del árbol
resultado.
Con el fin de programar la operación anterior, podríais necesitar
alguna operación privada y posiblemente static.
No utilicéis ninguna operación primitiva de ArbreGen.
Acceded directamente a los atributos de la clase para trabajar.
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