Suma de tots els nodes d’un arbre binary - recursiu X93987


Statement
 

pdf   zip   tar

thehtml

Implementa un algorisme recursiu que, donat un arbre binary d’enters, sumi tots els nodes, deixi el resultat a l’arrel i posi 0 a la resta de nodes de l’arbre.

/* Pre: a és un arbre binary d'enters. */
/* Post: Suma tots els nodes de l'arbre, deixa el resultat a l'arrel i posa un 0 a la resta de nodes */
void SumTree(BinaryTree<int> &a) {
}

NOTES IMPORTANTS:

  • L’algorisme ha de ser eficient, és a dir, que no realitzi càlculs innecessaris.
  • Entre els fitxers que s’adjunten en aquest exercici trobaràs el fitxer BinaryTree.hpp que conté la implementació de la classe BinaryTree. No cal que modifiquis aquest fitxer.
  • També trobaràs el fitxer program.cpp i el Makefile per a compilar i generar l’executable. El programa principal ja s’encarrega de llegir les dades de l’arbre i cridar al mètode indicat. Només cal que implementis el mètode SumTree.
  • Es valorarà la correctesa i eficiència de la solució així com la correcta especificació de la precondició, la postcondició, la hipòtesi d’inducció i la funció fita.
  • Per a pujar la solució has de crear el fitxer solution.tar així:

    tar cf solution.tar SumTree.cpp

Entrada

Com a entrada hi haurà els nodes de l’arbre en postordre.

Sortida

Com a sortida es mostrarà l’arbre original i l’arbre resultat.

Public test cases
  • Input

    6 4 0 8 0 5 -1 2 2 3 0 1 2

    Output

    [1]
     \__[3]
     |   \__.
     |   \__.
     \__[2]
         \__[5]
         |   \__.
         |   \__[8]
         |       \__.
         |       \__.
         \__[4]
             \__.
             \__.
    [23]
     \__[0]
     |   \__.
     |   \__.
     \__[0]
         \__[0]
         |   \__.
         |   \__[0]
         |       \__.
         |       \__.
         \__[0]
             \__.
             \__.
  • Input

    3 7 0 2 0 5 2

    Output

    [5]
     \__[2]
     |   \__.
     |   \__.
     \__[7]
         \__.
         \__.
    [14]
     \__[0]
     |   \__.
     |   \__.
     \__[0]
         \__.
         \__.
  • Information
    Author
    Alejandro Ríos
    Language
    Catalan
    Official solutions
    Make
    User solutions
    Make