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
és el grau de desequilibri del subarbre de t amb l’arrel a
.
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);
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ó.
Cada cas consisteix en una representació textual d’un arbre d’enters. (Aquesta lectura ja la fa el programa principal.)
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.)
Autoria: PRO2
Generació: 2026-01-25T12:53:18.349Z
© Jutge.org, 2006–2026.
https://jutge.org