Arbre de graus de desequilibri X37533


Statement
 

pdf   zip   tar

html

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"

Information
Author
Alberto Moreno (adaptador), Ramon Ferrer i Cancho (responsable)
Language
Catalan
Official solutions
C++
User solutions
C++