Heu de comprovar si un arbre binari d’enters és simètric respecte el seu centre, és a dir, és un mirall de si mateix.
El següent arbre compleix la propietat descrita (per veure la imatge cliqueu a la versió PDF):
Entrada
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 nombre de fills (2 fills,
-1 indica un fill esquerra, 1 indica un fill dret o 0 fills). Podeu utilitzar
l’operador >>
definit dins la classe arbreBin
per llegir l’arbre
binari.
Sortida
Com a sortida es mostrarà l’estructura de l’arbre binari (podeu utilitzar
l’operador <<
definit dins la classe arbreBin
) seguit d’un
d’aquests dos textos:
L'arbre és simètric. L'arbre no és simètric.
Observació
Cal fer servir la classe arbreBin
que us donem.
Heu d’enviar el fitxer amb la solució program.cpp
comprimida en un
fitxer .tar:
tar cvf program.tar program.cpp
A l’enviar la solució escriviu una anotació ("Solució iterativa" o "Solució recursiva") segons el tipus de solució que hagueu fet.
Observeu que per compilar us donem el Makefile
i el mòdul
arbreBin
.
Input
11 5 0 -3 0 -2 2 6 0 2 2 6 0 -3 0 5 0 -2 2 2 2 9 2
Output
[9] \__[2] | \__[-2] | | \__[5] | | | \__. | | | \__. | | \__[-3] | | \__. | | \__. | \__[6] | \__. | \__. \__[2] \__[6] | \__. | \__. \__[-2] \__[-3] | \__. | \__. \__[5] \__. \__. L'arbre és simètric
Input
11 5 0 -3 0 -2 2 6 0 2 2 6 0 3 0 5 0 -2 2 2 2 9 2
Output
[9] \__[2] | \__[-2] | | \__[5] | | | \__. | | | \__. | | \__[3] | | \__. | | \__. | \__[6] | \__. | \__. \__[2] \__[6] | \__. | \__. \__[-2] \__[-3] | \__. | \__. \__[5] \__. \__. L'arbre no és simètric.