Considerem la representació habitual amb nodes de la classe ArbreGen per manegar arbres generals genèrics d’elements de tipus T.
Un arbre només té un atribut: un punter al primer node. Cada node conté la seva info i un vector de punters, que representa els seus succesors. Per a tot node intern, el vector no és buit; per a tota fulla, el vector és buit.
Recordeu que hem definit un camí a un arbre com una successió de nodes que van de l’arrel a una fulla. Us demanem implementar una operació nova d’aquesta classe, amb la següent especificació pre/post, on el tipus T ha de tenir definides les operacions + (suma) i > (més gran que):
Exemple: si a és el següent arbre general d’enters
llavors la crida a.max_suma_cami() ha de retornar 29 (7+9+13). Si en comptes dels valors 12 i 13 tinguéssim 1 i -2, el resultat hauria de ser 19 (7+2+10 o també 7+4+8).
Dissenyeu aquesta operació sense utilitzar cap de les operacions primitives del arbres, accedint directament als atributs de la classe ArbreGen.
Entrada
L’entrada és un arbre general en el paràmetre implícit.
Sortida
La sortida és el resultat de la suma del camí de suma màxima del paràmetre implícit.
Observació
Només s’ha d’enviar un fitxer 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”.