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):
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.
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.
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.