Diferència entre les sumes dels nivells d'un arbre binari X60436


Statement
 

pdf   zip   tar

html

Donat un arbre binari d’enters positius a, escriviu una funció recursiva que retorni la diferència entre la suma de tots els nodes d’a que es troben a nivell senar i la suma de tots els nodes d’a que es troben a nivell parell. El primer nivell d’un arbre no buit és 1.

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 seu 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 d’entrada (podeu utilitzar l’operador << definit dins la classe arbreBin) i l’enter corresponent a la diferència entre la suma de tots els nodes de l’arbre d’entrada que es troben a nivell senar i la suma de tots els nodes de l’arbre d’entrada que es troben a nivell parell.

Observació

Es valorarà l’eficiència de la solució proposada. Es penalitzarà l’ús d’estructures de dades addicionals innecessàries.

Cal fer servir la classe arbreBin que us donem.

Heu d’enviar el fitxer amb la solució program.cpp comprimida en un fitxer .tar, que contindrà la funció demanada i el programa principal que la usi:

  tar cvf program.tar program.cpp

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

Public test cases
  • Input

    5
    3 0
    4 0
    2 2
    5 0
    1 2
    
    
    
    

    Output

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

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

    Output

    [1]
     \__[2]
     |   \__.
     |   \__[7]
     |       \__.
     |       \__.
     \__[3]
         \__[4]
         |   \__.
         |   \__.
         \__[2]
             \__[6]
             |   \__.
             |   \__.
             \__[0]
                 \__.
                 \__.
    3
    
  • Input

    1
    5 0

    Output

    [5]
     \__.
     \__.
    5
    
  • Information
    Author
    Neus Català
    Language
    Catalan
    Official solutions
    Make
    User solutions
    Make