Pes Màxim en un Arbre. X86754


Statement
 

pdf   zip   tar

Les fulles d’un arbre binari són els nodes que no tenen ni fill dret ni fill esquerre. Un camí és una seqüència de nodes d’un arbre A [a1,a2,,ai,ai+1,,an][a_1, a_2, \dots, a_i, a_{i+1}, \dots, a_n] tal que a1a_1 és l’arrel d’AA, ana_n és una fulla, i per a tot aia_i (i<ni < n) tenim que ai+1a_{i+1} és el fill de aia_i. Un arbre A té tants camins com fulles.

  

El pes d’un camí [a1,a2,,ai,ai+1,,an][a_1, a_2, \dots, a_i, a_{i+1}, \dots, a_n] és:

i=1nai\sum^n_{i = 1} a_i

  

Feu la funció recursiva

  

int pesMaxim (arbreBin<int> A);

  

tal que, donat un arbre binari de distàncies A, torni el màxim dels pesos de tots els camins que hi ha a l’arbre A.


             A1            A2         A3
    
             4             2           9
            / \           / \         / \
           2   5         12  3       2   3
          / \ / \           /           / \
         5  6 3  1         7           7   2
                    

Per exemple, per a l’arbre A1 la funció tornaria 1212, que és el pes del camí [4,2,6][4,2,6] o la del camí [4,5,3][4,5,3]. Per a l’arbre A2 la funció tornaria 1414, que és el pes del camí [2,12][2,12]. Per a l’arbre A3 la funció tornaria 1919, que és el pes del camí [9,3,7][9,3,7].

El pes màxim d’un arbre buit és 00.

Entrada

La funció rep un arbres binari d’enters, on tots els enters són més grans o iguals a 00.

Sortida

El màxim dels pesos de tots els camins que hi ha a l’arbre. El pes màxim d’un arbre buit és 00.

Observació

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

tar cvf program.tar pesMaxim.cpp

Observeu que per compilar us donem el Makefile,

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

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

Jutge.org també us donarà un semàfor verd si envieu una solució iterativa, però no serà correcte ja que l’enunciat del problema demana que la solució enviada sigui recursiva.

Public test cases
  • Input

    9
    
    9 0
    2 1
    5 0
    7 0
    4 2
    9 2
    6 0
    15 1
    2 2
    

    Output

    [2]
     \__[15]
     |   \__[6]
     |   |   \__.
     |   |   \__.
     |   \__.
     \__[9]
         \__[4]
         |   \__[7]
         |   |   \__.
         |   |   \__.
         |   \__[5]
         |       \__.
         |       \__.
         \__[2]
             \__[9]
             |   \__.
             |   \__.
             \__.
    
    23
    
  • Input

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

    Output

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