Les fulles d’un arbre binari són els nodes que no
tenen ni fill dret ni fill esquerre. Un camí és una
seqüència de nodes d’un arbre A
tal que
és l’arrel
d’,
és una fulla, i per a tot
()
tenim que
és el fill de
.
Un arbre A té tants camins com fulles.
El pes d’un camí és:
Feu la funció recursiva
int pesMaxim (arbreBin<int> A);
tal que, donat un arbre binari de distàncies A, torni el
màxim dels pesos de tots els camins que hi ha a l’arbre
A.
A1 A2 A3
4 2 9
/ \ / \ / \
2 5 12 3 2 3
/ \ / \ / / \
5 6 3 1 7 7 2
Per exemple, per a l’arbre A1 la funció tornaria
,
que és el pes del camí
o la del camí
.
Per a l’arbre A2 la funció tornaria
,
que és el pes del camí
.
Per a l’arbre A3 la funció tornaria
,
que és el pes del camí
.
El pes màxim d’un arbre buit és .
La funció rep un arbres binari d’enters, on tots els enters són més grans o iguals a .
El màxim dels pesos de tots els camins que hi ha a l’arbre. El pes màxim d’un arbre buit és .
Heu d’enviar la solució comprimida en un fitxer .tar:
tar cvf program.tar pesMaxim.cpp
Observeu que per compilar us donem el Makefile,
la capçalera del mòdul funcional pesMaxim.hpp,
la implementació de l’arbre binari arbreBin.hpp i el
programa principal program.cpp.
Jutge.org també us donarà un semàfor verd si envieu una solució iterativa, però no serà correcte ja que l’enunciat del problema demana que la solució enviada sigui recursiva.
Input
9 9 0 2 1 5 0 7 0 4 2 9 2 6 0 15 1 2 2
Output
[2]
\__[15]
| \__[6]
| | \__.
| | \__.
| \__.
\__[9]
\__[4]
| \__[7]
| | \__.
| | \__.
| \__[5]
| \__.
| \__.
\__[2]
\__[9]
| \__.
| \__.
\__.
23
Input
11 8 0 9 0 4 2 10 0 11 0 5 2 2 2 6 0 7 0 3 2 0 2
Output
[0]
\__[3]
| \__[7]
| | \__.
| | \__.
| \__[6]
| \__.
| \__.
\__[2]
\__[5]
| \__[11]
| | \__.
| | \__.
| \__[10]
| \__.
| \__.
\__[4]
\__[9]
| \__.
| \__.
\__[8]
\__.
\__.
18