Sumes per Nivells. X52358


Statement
 

pdf   zip   tar

html

Feu la funció

vector<int> sumesNivells (const arbreBin<int>);

tal que, donat un arbre binari d’enters (que no és buit), torni un vector d’enters tal que a la posició i-èssima del vector hi hagi la suma dels enters que són al nivell i+1 de l’arbre (assumim que l’arrel té el nivell 1).

Per exemple, la funció tornaria, per a l’arbre A1 el vector v = [1,5,7], perquè la suma dels enters del nivell 1 és 1, la del nivell 2 és 2 + 3 = 5 i la del nivell 3 és 1 + 4 + 1 + 1 = 7. Per a l’arbre A2 tornaria v = [1,8,1] per a l’arbre A3 tornaria v = [3,5,4].

         A1            A2         A3

         1             1           3
        / \           / \         / \
       2   3         5   3       2   3
      / \ / \           /       /   / \
     1  4 1  1         1       1   1   2
                    

Entrada

La funció rep un arbre binari d’enters no buit.

Sortida

Un vector de mida alçada(a) tal que a la posició v[i] hi hagi la suma dels elements de nivell i+1 de l’arbre a.

Observació

Heu d’enviar la solució comprimida en un fitxer .tar:

tar cvf program.tar sumesNivells.cpp

Observeu que per compilar us donem el Makefile,

la capçalera del mòdul funcional sumesNivells.hpp,

la implementació de l’arbre binari arbreBin.hpp i el programa principal program.cpp.

Public test cases
  • Input

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

    Output

    [1]
     \__[6]
     |   \__[8]
     |   |   \__.
     |   |   \__.
     |   \__.
     \__[3]
         \__[4]
         |   \__[7]
         |   |   \__.
         |   |   \__.
         |   \__[5]
         |       \__.
         |       \__.
         \__[2]
             \__[9]
             |   \__.
             |   \__.
             \__.
    
    1 9 14 21 
    
  • Input

    11
    
    8 0
    9 0
    4 2
    10 0
    11 0
    5 2
    2 2
    6 0
    7 0
    3 2
    1 2
    

    Output

    [1]
     \__[3]
     |   \__[7]
     |   |   \__.
     |   |   \__.
     |   \__[6]
     |       \__.
     |       \__.
     \__[2]
         \__[5]
         |   \__[11]
         |   |   \__.
         |   |   \__.
         |   \__[10]
         |       \__.
         |       \__.
         \__[4]
             \__[9]
             |   \__.
             |   \__.
             \__[8]
                 \__.
                 \__.
    
    1 5 22 38 
    
  • Information
    Author
    PRO1-Vilanova
    Language
    Catalan
    Official solutions
    Make
    User solutions
    Make