Isomorfisme d'arbres binaris. X39597


Statement
 

pdf   zip   tar

html

Feu una funció tal que, donats dos arbres binaris, torni true si i només si tots dos arbres són isomorfs.

Isomorfisme vol dir que tenen la mateixa (iso, en grec) forma (morphe, en grec). Això vol dir que si quan sobreposem tots dos arbres tenen la mateixa forma, vol dir que són isomorfs, encara que el contingut als nodes no coincideixi. Per exemple, aquest dos arbres són isomorfs

                        1          4
                       / \        / \
                      3   8      5   6
                     / \        / \
                    2   6      1   9

En canvi, aquests dos no ho són:

                        1          1
                       / \        / \
                      3   8      3   8
                     / \        / \   \
                    2   6      2   6   4

La funció que heu de programar és:

bool isomorfs (arbreBin<int>&, arbreBin<int>&);

i l’heu de posar al fitxer isomorfs.cpp.

Tingueu en compte que la gestió d el’entrada i la sortida la fa el programa principal que ja us passem. Només cal que programeu la funció i prou.

Entrada

Dos arbres amb el següent format: la mida de l’arbre i els nodes en postordre d’un arbre binari; per cada node s’indica el seu valor i el nombre de fills.

Sortida

SI (sense accent) si tots dos arbres són isomorfs, NO altrament.

Observació

Heu d’enviar la solució comprimida en un fitxer .tar:

tar cvf program.tar isomorfs.cpp

Observeu que per compilar us donem el Makefile, la classe arbreBin.hpp, la capçalera del mòdul funcional isomorfs.hpp i el programa principal program.cpp.

Jutge.org també us donarà un semàfor verd si envieu una solució iterativa, però no serà correcte ja que l’enunciat del problema demana que la solució enviada sigui recursiva.

Public test cases
  • Input

    9
    
    9 0
    2 1
    5 0
    7 0
    4 2
    3 2
    8 0
    6 1
    1 2
    
    6
    
    7 0
    4 1
    3 1
    8 0
    6 1
    1 2
    
    
    
    

    Output

    NO
    
  • Input

    9
    
    9 0
    2 1
    5 0
    7 0
    4 2
    3 2
    8 0
    6 1
    1 2
    
    9
    
    2 0
    3 1
    6 0
    7 0
    3 2
    9 2
    8 0
    8 1
    1 2
    
    
    
    

    Output

    SI
    
  • Information
    Author
    PRO1-Vilanova
    Language
    Catalan
    Official solutions
    Make
    User solutions
    Make