Considerem la representació habitual amb nodes de la classe Arbre per manegar arbres binaris genèrics d’elements de tipus T que podeu trobar als fitxers públics. El nodes contenen la info i dos apuntadors segE i segD als fills esquerra i dret. Un arbre només té un atribut: un punter al primer node.
Definim l’arbre suma d’un arbre donat com aquell arbre identic al donat pero en el que els nodes contenen la suma del subarbre corresponent. Per exemple
l’arbre suma serà (recorregut en inordre)
Dissenyeu aquesta operació
void arb_sumes(Arbre<int> &asum) const /* Pre: cert */ /* Post: l'arbre asum és l'arbre suma del p.i. */
No utilitzeu cap de les operacions primitives del arbres, accediu directament als atributs de la classe Arbre.
Entrada
L’entrada és un arbre binari, que serà llegit en preordre, en el paràmetre implícit.
Sortida
La sortida és l’arbre suma del paràmetre implícit recorregut en inordre.
Observació
Només s’ha d’enviar un fitxer anomenat “program.hh”que contengui la funció amb la capçalera de l’enunciat i qualsevol altra funció auxiliar que cregueu convenient, sense la funció main i sense posar-hi cap “include”.