Implementeu una funció RECURSIVA que, donat un arbre
binari d’enters t, retorni true si l’arbre és simètric i false en cas
contrari.
// Pre: t és un arbre binari no buit d'enters.
// Post: Retorna cert si l'arbre t és simètric i
// false si no ho és.
bool simetricTree(BT t);
Aquí tenim un exemple de paràmetre d’entrada de la funció i la
corresponent sortida:
simetricTree(7(6(4,3),6(3,4))) = true
Fixeu-vos que l’enunciat d’aquest exercici ja ofereix uns fitxers que
haureu d’utilitzar per a compilar: Makefile, program.cpp,
BinaryTree.hpp, simetricTree.hpp. Us falta crear el fitxer
simetricTree.cpp amb els corresponents includes i implementar-hi la
funció anterior. Quan pugeu la vostra solució al jutge, només cal que
pugeu un tar construït així:
tar cf solution.tar simetricTree.cpp
L’entrada té un nombre arbitrari de casos. Cada cas consisteix en una línia amb un string describint un arbre binari d’enters. Fixeu-vos en que el programa que us oferim ja s’encarrega de llegir aquestes entrades. Només cal que implementeu la funció abans esmentada.
Per a cada cas, la sortida conté la corresponent avaluació de l’arbre. Fixeu-vos en que el programa que us oferim ja s’encarrega d’escriure aquesta avaluació. Només cal que implementeu la funció abans esmentada.
Input
7(6(4,3),6(3,4)) 0(7(10,10(0,)),7(10,10(0,))) 0(10(10(9,),2(10,)),10(2(,10),10(,9))) 6(9(8,2),9(2,8)) 4(7(4,9),7(4,9)) 2(10(0,),10(0,)) 7(,9(,2)) 9(8(,9),8(9,)) 8(7(4,8),10(0(8,2),10(2,10))) 6(0(,5),10)
Output
Simetric No simetric Simetric Simetric No simetric No simetric No simetric Simetric No simetric No simetric
Input
4(4,6) 10(7(7,),7(,7)) 10(0(,0),0(,0)) 2(10(9,),10(9,)) 7(10(0(9,8(2,)),6),10(6,0(8(,2),9))) 3(10(1(9(10,6),),1),3) 3(7(,9(4(,5),)),7(,9(4(,5),))) 6(5(7(5,7),),5(7(5,7),)) 3(9(4(3(10,5),10),),9(4(3(10,5),10),)) 9(10(9(9(,7),),7(4(7,),6(,0))),10(9(9(,7),),7(4(7,),6(,0)))) 8(5(0(2(6,1),),8(9,)),5(0(2(6,1),),8(9,))) 4(7(9(2,),),) 6 1(0(4(,10),),0(,4(10,))) 3 7(5(10,3(,1(0,1))),5(10,3(,1(0,1)))) 3 10(10,4) 6 4(0(8(,7),9(7(9,4),2(3,))),0(8(,7),9(7(9,4),2(3,)))) 9(2,6) 2(1(1,6),) 5(5(9,3),) 8(7(9,),7(9,)) 0(10(3,),10(,3))
Output
No simetric Simetric No simetric No simetric Simetric No simetric No simetric No simetric No simetric No simetric No simetric No simetric Simetric Simetric Simetric No simetric Simetric No simetric Simetric No simetric No simetric No simetric No simetric No simetric Simetric