Resta dels nodes d’un arbre binari - recursiu U94101


Statement
 

pdf   zip   tar

thehtml

Implementar una funció recursiva que, donat un arbre binari on cada node té 2 fills o és una fulla, substitueixi els nodes intermitjos per la resta dels nodes esquerre i dret i les fulles per 0. El codi ha d’estar correctament documentat amb el Pre, Post, Hipòtesi d’Inducció i Fita.

/* Pre: a és un arbre binari d'enters */
/* Post: el valor de cada node intermig de a se substitueix per 
la resta del valor del seu fill esquerre menys el del fill dret. 
En cas que el node sigui una fulla, el seu valor es posa a 0.*/ 
void SubstractNodes(BinaryTree<int> &a);

D’entre els fitxers que s’adjunten a l’exercici també hi ha program.cpp (programa principal) i Makefile per a compilar. Per a pujar la vostra solució, heu de crear el fitxer solution.tar així:

tar cf solution.tar SubstractNodes.cpp

Entrada

Com a entrada hi haurà un arbre binari on tots els nodes tenen 2 fills o són una fulla. El primer digit és el nombre de nodes i a continuació, per a cada node, apareixen el seu valor i un enter que indica si és una fulla (0) o té dos fills (2), donats en postordre.

Sortida

Com a sortida es mostrarà l’arbre original i, a continuació, l’arbre resultant de la funció recursiva.

Public test cases
  • Input

    5 7 0 2 0 4 2 9 0 3 2

    Output

    [3]
     \__[9]
     |   \__.
     |   \__.
     \__[4]
         \__[2]
         |   \__.
         |   \__.
         \__[7]
             \__.
             \__.
    [-5]
     \__[0]
     |   \__.
     |   \__.
     \__[5]
         \__[0]
         |   \__.
         |   \__.
         \__[0]
             \__.
             \__.
  • Input

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

    Output

    [9]
     \__[5]
     |   \__[7]
     |   |   \__.
     |   |   \__.
     |   \__[3]
     |       \__.
     |       \__.
     \__[4]
         \__[2]
         |   \__.
         |   \__.
         \__[8]
             \__.
             \__.
    [-1]
     \__[-4]
     |   \__[0]
     |   |   \__.
     |   |   \__.
     |   \__[0]
     |       \__.
     |       \__.
     \__[6]
         \__[0]
         |   \__.
         |   \__.
         \__[0]
             \__.
             \__.
  • Information
    Author
    Alejandro Ríos
    Language
    Catalan
    Official solutions
    Make
    User solutions
    Make