Esborrar 0s i 1s d’un arbre

Implementeu una funció RECURSIVA que, donat un arbre binari d’enters,
retorna un altre arbre binari d’enters a base d’esborrar tots els seus
0’s i 1’s aplicant els següents passos tans cops com calgui:

- Si hi ha un subarbre amb arrel 0, llavors el reemplacem pel seu
  corresponent fill esquerre.

- Si hi ha un subarbre amb arrel 1, llavors el reemplacem pel seu
  corresponent fill dret.

Aquesta és la capcelera:

    // Pre:
    // Post: Retorna el resultat de reemplaçar tans cops com calgui en t
    //       cada subarbre amb arrel 0 pel seu fill esquerre,
    //       i cada subarbre amb arrel 1 pel seu fill dret.
    BinTree<int> remove01(BinTree<int> t);

Aquí tenim un exemple de paràmetre d’entrada de la funció i la
corresponent sortida:

    remove01(                   0                )     =     7
                                |                            |
                   ------------- -------------                ----
                  |                           |                   |
                  1                           8                   8
                  |                           |
              ---- ----                ------- -------
             |         |              |               |
             1         7              1               1
                       |              |               |
                   ---- ----      ---- ----       ----
                  |         |    |         |     |
                  0         8    0         3     0

Fixeu-vos que l’enunciat d’aquest exercici ja ofereix uns fitxers que
haureu d’utilitzar per a compilar: main.cc, BinTree.hh, remove01.hh. Us
falta crear el fitxer remove01.cc amb els corresponents includes i
implementar-hi la funció anterior. Només cal que pugeu remove01.cc al
jutge.

Entrada

La primera linia de l’entrada descriu el format en el que es descriuen
els arbres, o bé INLINEFORMAT o bé VISUALFORMAT. Després venen un nombre
arbitrari de casos. Cada cas consisteix en una descripció d’un arbre un
arbre binari d’enters. Fixeu-vos en que el programa que us oferim ja
s’encarrega de llegir aquestes entrades. Només cal que implementeu la
funció abans esmentada.

Sortida

Per a cada cas, la sortida conté la corresponent arbre resultant d’haver
esborrat 0s i 1s. Fixeu-vos en que el programa que us oferim ja
s’encarrega d’escriure aquesta sortida. Només cal que implementeu la
funció abans esmentada.

Observació

La vostra funció i subfuncions que creeu han de treballar només amb
arbres. Heu de trobar una solució RECURSIVA del problema.

Informació del problema

Autoria: PRO2

Generació: 2026-01-25T15:54:46.742Z

© Jutge.org, 2006–2026.
https://jutge.org
