Arbre de graus de desequilibri

Considereu un arbre binari a de qualsevol tipus. Donat qualsevol
subarbre b no buit d’a, diem que el grau de desequilibri de b és la
diferència entre l’altura del seu fill esquerre i la del seu fill dret
(pot ser positiva, zero o negativa). Diem que l’arbre de graus de
desequilibri d’a és un altre arbre binari agd amb la mateixa forma que
a, on cada element és el grau de desequilibri del subarbre d’a que té
com a arrel el corresponent de l’esmentat element.

Exemple:

        a =       7                b =      2
               /     \                   /     \
             6        1                -2      -1
           /   \       \               / \       \
         10     3       8             0  -2       0
                 \                         \        
                  5                         0        
                /  \                       / \
               2    4                     0   0

Dissenyeu una funció que retorni l’arbre de graus de desequilibri d’un
arbre binari d’enters. Feu servir la següent especificació:

    void arbre_graus_desequilibri(Arbre<int> &a, Arbre<int> &agd)
    /* Pre: a=A */
    /* Post: agd es un arbre amb la mateixa estructura que A on cada
       node conte el grau de desequilibri del subarbre d'A corresponent */

Entrada

L’entrada és un arbre.

Sortida

La sortida és un arbre amb la mateixa estructura que l’arbre d’entrada
on cada node conté el grau de desequilibri del subarbre corresponent.

Observació

Només s’ha d’enviar un fitxer que contengui la funció amb la capçalera
de l’enunciat i qualsevol altra funció auxiliar que cregueu convenient,
sense la funció main. Afegiu-hi també l’include de la classe Arbre
mitjançant

#include "Arbre.hh"

Informació del problema

Autoria: Alberto Moreno (adaptador), Ramon Ferrer i Cancho (responsable)

Generació: 2026-01-25T15:30:15.450Z

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