TYPE
tInfo=integer;
tArbol=^tNodo;
tNodo=record
Peso:tInfo;
iz,de:tArbol;
end;
VAR
AB: tArbol;
{Hago un recorrido en Enorden y sumo el peso de los nodos}
PROCEDURE Recorrido (Arbol:tArbol;Var Peso:integer);
Begin
If (AB <> nil) then
Begin
Recorrido(Arbol^.iz,Peso);
Peso:=Peso+Arbol^.Peso;
Recorrido(Arbol^.de,Peso);
End;
End;
PROCEDURE ComprobarPonderado (AB:Tarbol; VAR Ponderado:Boolean; VAR Peso:Integer)
VAR
X,SumaIzq,Sumador: Integer;
BEGIN
If (AB=Nil) Then
Begin
Ponderado:=true
Peso:=0
End;{If}
Else Begin {AB<>Nil}
SumaIzq:=0;
sumaDer:=0;
Recorrido(Arbol^.iz,Sumaizq);{sumamos el subarbol izquierdo}
Recorrido(Arbol^.de,SumaDer);{sumamos el subarbol derecho}
x:=SumaDer-SumaIzq;
If (x <= 10) Then
Ponderado:=true
else
Ponderado:=False;
End;{Else}
END;