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.
Entrada
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).
Salida
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.
Observaciones
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