Suma dels nodes d'un arbre binari - recursiu Z42492


Statement
 

pdf   zip   tar

thehtml

Implementar una funció recursiva que, donat un arbre binari d’enters on cada node té 2 fills o és una fulla, substitueixi els nodes intermitjos per la suma 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 suma del valor del seu fill dret i del fill esquerre. 
En cas que el node sigui una fulla, el seu valor es posa a 0.*/ 
void SumNodes(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 SumNodes.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]
             \__.
             \__.
    [13]
     \__[0]
     |   \__.
     |   \__.
     \__[9]
         \__[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]
             \__.
             \__.
    [9]
     \__[10]
     |   \__[0]
     |   |   \__.
     |   |   \__.
     |   \__[0]
     |       \__.
     |       \__.
     \__[10]
         \__[0]
         |   \__.
         |   \__.
         \__[0]
             \__.
             \__.
  • Information
    Author
    Alejandro Ríos
    Language
    Catalan
    Official solutions
    Make
    User solutions
    Make