Arbre binari de graus de desequilibri

Considereu un arbre binari t de qualsevol tipus. Donat qualsevol subarbre s no buit de t, diem que el grau de desequilibri de s és la diferència entre l’alçada del seu fill esquerre i la del seu fill dret (pot ser positiva, zero o negativa).

Diem que l’arbre de graus de desequilibri de t és un altre arbre binari D amb la mateixa forma que t, on el valor de cada node nn és el grau de desequilibri del subarbre de t amb l’arrel a nn.

Un exemple, amb l’arbre t a l’esquerra, i l’arbre D de graus de desequilibri a la dreta:

t = 7                  D = 2
    |-- 1                  |-- -1
    |   |-- #              |   |-- #
    |   '-- 8              |   '-- 0
    '-- 6                  '-- -2
        |-- 3                  |-- -2
        |   |-- #              |   |-- #
        |   '-- 5              |   '-- 0
        |       |-- 2          |       |-- 0
        |       '-- 4          |       '-- 0
        '-- 10                 '-- 0

Implementeu la funció:

/**
 * @brief Retorna l'arbre de graus de desequilibri de `t`.
 *
 * @param t L'arbre binari original.
 * @returns L'arbre de graus de desequilibri de `t`.
 */
BinTree<int> bintree_of_height_diffs(BinTree<int> t);

Observació

Els fitxers públics (icona del gatet) són: la classe BinTree (fitxer bintree.hh), l’entrada/sortida de BinTree (bintree-io.hh) i el programa principal. També hi ha un Makefile i el directori .vscode que té la configuració per compilar i debuggar amb VSCode.

Has d’implementar bintree_of_height_diffs en un fitxer .cc nou, compilar (està preparat per poder compilar i debuggar amb VSCode), i finalment enviar només el fitxer amb la funció.

Entrada

Cada cas consisteix en una representació textual d’un arbre d’enters. (Aquesta lectura ja la fa el programa principal.)

Sortida

Per a cada cas, la sortida conté la representació textual de l’arbre resultant d’aplicar la funció bintree_of_height_diffs. (La sortida també la fa el programa principal.)

Informació del problema

Autoria: PRO2

Generació: 2026-01-25T12:53:18.349Z

© Jutge.org, 2006–2026.
https://jutge.org