Arbre binari amb els valors dels nodes interns iguals X93918


Statement
 

pdf   zip   tar

thehtml

Donat un arbre binari, les seves fulles són els subarbres que tenen les dues branques left i right buides. Els nodes interns són tots aquells nodes que no són fulles.

Implementa la funció tree_internal_nodes_equal, que determina si, en un arbre binari d’enters, els valors dels nodes interns són tots iguals:

/**
 * @brief Determina si tots els valors dels nodes interns són iguals
 * 
 * @param  t  Un arbre binari d'enters
 * @returns  `true` si tots els valors dels nodes interns són iguals, 
 *           `false` altrament.
 */
bool tree_internal_nodes_equal(BinTree<int> t);

Observació

Els fitxers públics (icona del gatet) contenen:

main.ccel programa principal, amb la entrada/sortida feta
bintree.hhla classe BinTree<T>
bintree-io.hhl’entrada/sortida de BinTree<T>
bintree-inline.hhl’entrada/sortida "inline" de BinTree<T>
Makefileper compilar amb make còmodament
.vscodecarpeta per compilar i debuggar amb VSCode

Cal implementar tree_internal_nodes_equal en un fitxer .cc nou, compilar, i finalment enviar només el fitxer amb la funció.

Entrada

L’entrada comença amb "visual" o "inline" per indicar el format dels arbres d’entrada. Després ve una seqüència d’arbres en el format indicat. (D’això s’encarrega el programa principal).

Sortida

La sortida són els strings resultants de cridar la funció tree_internal_nodes_equal, un resultat per línia. (D’això també s’encarrega el programa principal.)

Public test cases
  • Input

    visual
    
    #
    
    8
    
    1
    |-- #
    '-- 3
    
    5
    |-- 5
    |   |-- 1
    |   '-- #
    '-- 3
    
    7
    |-- 7
    |   |-- #
    |   '-- 1
    '-- 5
        |-- 2
        '-- 3
    
    6
    |-- #
    '-- 6
        |-- #
        '-- 1
    
    7
    |-- 9
    |   |-- #
    |   '-- 9
    |       |-- 5
    |       '-- 5
    '-- 9
        |-- 3
        '-- 9
            |-- 10
            '-- #
    
            

    Output

    true
    true
    true
    true
    false
    true
    false
    
  • Input

    inline
    8(8(5,),8(5,))
    9(,9(9(,1),9(,3)))
    4(4(,2),4(4,))
    10(10(6,),10(,9))
    6(6(4,),6(,0))
    1(1(1(,5),1(,8)),1(1(,7),1(3,)))
    9(4(4(,8),4(7,)),)
    9(9(6,),2(,7))
    6(6(,6),2(3,))
    3(3(3(,9),3(,4)),3(3(,9),9(,9)))
    

    Output

    true
    true
    true
    true
    true
    true
    false
    false
    false
    false
    
  • Information
    Author
    Pau Fernández
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++