Resta dels nodes d’un arbre binari

Implementar una funció recursiva que, donat un arbre binari on cada node té 2 fills o és una fulla, substitueixi els nodes intermitjos per la resta dels nodes esquerre i dret i les fulles per 0. El codi ha d’estar correctament documentat amb el Pre, Post, Hipòtesi d’Inducció i Fita.

/* Pre: a és un arbre binari d'enters */
/* Post: el valor de cada node intermig de a se substitueix per 
la resta del valor del seu fill esquerre menys el del fill dret. 
En cas que el node sigui una fulla, el seu valor es posa a 0.*/ 
void SubstractNodes(BinaryTree<int> &a);

D’entre els fitxers que s’adjunten a l’exercici també hi ha program.cpp (programa principal) i Makefile per a compilar. Per a pujar la vostra solució, heu de crear el fitxer solution.tar així:

tar cf solution.tar SubstractNodes.cpp

Entrada

Com a entrada hi haurà un arbre binari on tots els nodes tenen 2 fills o són una fulla. El primer digit és el nombre de nodes i a continuació, per a cada node, apareixen el seu valor i un enter que indica si és una fulla (0) o té dos fills (2), donats en postordre.

Sortida

Com a sortida es mostrarà l’arbre original i, a continuació, l’arbre resultant de la funció recursiva.

Informació del problema

Autoria: Alejandro Ríos

Generació: 2026-01-25T20:35:08.708Z

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