Generar l'arbre de sumes d'un arbre binari X81805


Statement
 

pdf   zip   tar

html

L’arbre de sumes d’un arbre a és un altre arbre b amb la mateixa estructura, tal que cada node de b és la suma dels descendents del seu node corresponent a a, incloent-lo a ell mateix.

(Per veure un exemple amb els arbres corresponents a l’exemple d’entrada-sortida, consulteu la versió pdf d’aquest enunciat.)

Per exemple, donat l’arbre:

el seu arbre de sumes és:

Especifiqueu i dissenyeu una funció que calculi l’arbre de sumes d’un arbre donat.

Entrada

Com a entrada hi haurà la mida de l’arbre i els nodes de l’arbre binari en postordre. Per cada node s’indica el seu valor i el nombre de fills (2 fills, -1 indica un fill esquerre, 1 indica un fill dret o 0 fills). Podeu utilitzar l’operador >> definit dins la classe arbreBin per llegir l’arbre binari.

Sortida

Com a sortida es mostrarà l’estructura de l’arbre binari de sumes resultant. Podeu utilitzar l’operador << definit dins la classe arbreBin.

Observació

Cal fer servir la classe arbreBin que us donem.

Heu d’enviar el fitxer amb la solució program.cpp comprimida en un fitxer .tar:

tar cvf program.tar program.cpp

A l’enviar la solució escriviu una anotació ("Solució iterativa" o "Solució recursiva") segons el tipus de solució que hagueu fet.

Observeu que per compilar us donem el Makefile i el mòdul arbreBin.

Public test cases
  • Input

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

    Output

    [14]
     \__[2]
     |   \__[-1]
     |   |   \__[1]
     |   |   |   \__.
     |   |   |   \__.
     |   |   \__[0]
     |   |       \__.
     |   |       \__.
     |   \__[4]
     |       \__.
     |       \__.
     \__[9]
         \__[8]
         |   \__.
         |   \__.
         \__[-1]
             \__[-3]
             |   \__.
             |   \__.
             \__[5]
                 \__.
                 \__.
    
  • Input

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

    Output

    [20]
     \__[5]
     |   \__.
     |   \__[6]
     |       \__[4]
     |       |   \__.
     |       |   \__.
     |       \__.
     \__[8]
         \__[3]
         |   \__.
         |   \__.
         \__.
    
  • Information
    Author
    Neus Català - Jordi Esteve
    Language
    Catalan
    Official solutions
    Make
    User solutions
    Make