Suma dels nodes d’un arbre binari

Implementar una funció recursiva que, donat un arbre binari d’enters on cada node té 2 fills o és una fulla, substitueixi els nodes intermitjos per la suma 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 suma del valor del seu fill dret i del fill esquerre. 
En cas que el node sigui una fulla, el seu valor es posa a 0.*/ 
void SumNodes(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 SumNodes.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-25T21:40:25.272Z

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