Implementa un nou mètode de la classe BinaryTree que
verifica si dos arbres binaris són idèntics.
D’entre els fitxers que s’adjunten en aquest exercici, trobaràs
BinaryTree.old.hpp, a on hi ha una implementació de la
classe genèrica BinaryTree. En primer lloc, hauràs de
fer:
cp BinaryTree.old.hpp BinaryTree.hpp
A continuació si obres el fitxer BinaryTree.hpp al final
del mateix trobaràs el mètode que has d’implementar:
// Pre: cert
// Post: Torna true si el pi i t són idèntics i false en cas contrari.
bool operator==(const BinaryTree &t) const;
IMPORTANT: No toquis la resta de la implementació de la classe, excepte si necessites afegir algun mètode auxiliar o atribut a la part privada.
D’entre els fitxers que s’adjunten a l’exercici també hi ha
program.cpp (programa principal) i Makefile
per a compilar i generar l’executable. El programa principal que
t’oferim ja s’encarrega de llegir els arbres binaris i fer les crides al
mètode indicat. Només cal que implementis el mètode
operator==.
Per a pujar la teva solució, has de crear el fitxer
solution.tar així:
tar cf solution.tar BinaryTree.hpp
Hauries d’aconseguir implementar el mètode demanat usant només la part privada de la classe, és a dir, usant únicament la representació de la classe. L’ús dels mètodes públics de la classe serà fortament penalitzat.
Recorda que si crees funcions auxiliars, has d’afegir-hi les corresponents Precondició (Pre) i Postcondició (Post). En els bucles inclou l’invariant del bucle (Inv) i la funció de fita (FF). En les crides recursives inclou la hipòtesi d’inducció (HI) i la funció de fita (FF).
Una seqüència de parells d’arbres binaris.
Per a cada parell d’arbres binaris s’escriurà el resultat del mètode
operator==.
El programa principal que t’oferim ja s’encarrega de llegir la
seqüència de parells d’arbres binaris i fer les crides corresponents al
mètode de BinaryTree que se’t demana d’implementar. Només
cal que facis les modificacions abans esmentades dins el fitxer
BinaryTree.hpp.
Per més detalls de com és l’entrada i la sortida consulta els jocs de proves públics.
Input
1 == 1 2 == 1 () == 0 7(2,5) == 7(2,5) 5(,1) == 5(1,) 5(,1) == 5(,1(1,)) 5(,1(1,)) == 5(,1(1,)) 5(,1(,1)) == 5(,1(1,)) 4(2(,3),2) == 5(1,) 1(3,4(3,2)) == 1(3,4(3,2)) 3(1,4(3,2)) == 1(3,4(3,2)) 2(5(2,2),) == 2(5(2,2),) 2(5(2,2(5,)),) == 2(5(2(2(5,),),),) 12(5(2(2(5,),),1),0) == 12(5(2(2(15,),),1),0)
Output
1 == 1 : true 2 == 1 : false () == 0 : false 7(2,5) == 7(2,5) : true 5(,1) == 5(1,) : false 5(,1) == 5(,1(1,)) : false 5(,1(1,)) == 5(,1(1,)) : true 5(,1(,1)) == 5(,1(1,)) : false 4(2(,3),2) == 5(1,) : false 1(3,4(3,2)) == 1(3,4(3,2)) : true 3(1,4(3,2)) == 1(3,4(3,2)) : false 2(5(2,2),) == 2(5(2,2),) : true 2(5(2,2(5,)),) == 2(5(2(2(5,),),),) : false 12(5(2(2(5,),),1),0) == 12(5(2(2(15,),),1),0) : false