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
Entrada
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.
Sortida
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