Donat un arbre binari que només conté els valors i , escriviu una funció que retorni la longitud de la cadena més llarga de valors iguals a que pot seguir-se dins l’arbre.
Com a entrada hi haurà la mida de l’arbre i els nodes de l’arbre
binari en postordre. Per cada node s’indica el seu valor i el seu nombre
de fills (2 fills, -1 indica un fill esquerre, 1 indica un fill dret o 0
fills). Podeu utilitzar l’operador >> definit dins la
classe arbreBin per llegir l’arbre binari.
Com a sortida es mostrarà l’estructura de l’arbre binari d’entrada
(podeu utilitzar l’operador << definit dins la classe
arbreBin) i l’enter corresponent a la longitud de la cadena
més llarga de valors iguals a 0 que pot seguir-se dins l’arbre
d’entrada.
Es valorarà l’eficiència de la solució proposada.
Cal fer servir la classe arbreBin que us donem.
Heu d’enviar el fitxer amb la solució program.cpp
comprimida en un fitxer .tar, que contindrà la funció demanada i el
programa principal que la usi:
tar cvf program.tar program.cpp
Observeu que per compilar us donem el Makefile i el
mòdul arbreBin.
Input
9 1 0 0 0 1 2 0 0 0 0 0 2 1 0 0 2 0 2
Output
[0]
\__[0]
| \__[1]
| | \__.
| | \__.
| \__[0]
| \__[0]
| | \__.
| | \__.
| \__[0]
| \__.
| \__.
\__[1]
\__[0]
| \__.
| \__.
\__[1]
\__.
\__.
La longitud de la cadena mes llarga de zeros es: 4
Input
4 1 0 1 0 1 -1 1 2
Output
[1]
\__[1]
| \__.
| \__[1]
| \__.
| \__.
\__[1]
\__.
\__.
La longitud de la cadena mes llarga de zeros es: 0
Input
11 1 0 1 0 0 2 0 0 0 0 0 2 1 0 1 2 1 0 0 2 1 2
Output
[1]
\__[0]
| \__[1]
| | \__.
| | \__.
| \__[1]
| \__[1]
| | \__.
| | \__.
| \__[0]
| \__[0]
| | \__.
| | \__.
| \__[0]
| \__.
| \__.
\__[0]
\__[1]
| \__.
| \__.
\__[1]
\__.
\__.
La longitud de la cadena mes llarga de zeros es: 2