Árboles balanceados

Los árboles binarios con valores en los nodos se pueden definir por

Por ejemplo, el árbol

se puede representar por

Diremos que un árbol está balanceado si para cada nodo la diferencia entre el número de nodos de sus subárboles izquierdo y derecho es menor o igual que uno.

Definir la función

tal que (balanceado a) se verifica si el árbol a está balanceado. Por ejemplo,

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell


Soluciones en Python

Un comentario

  1. Podemos implementar la función balanceado utilizando recursión. Primero, debemos calcular el número de nodos en cada subárbol izquierdo y derecho de cada nodo. Luego, podemos comparar la diferencia entre el número de nodos de cada subárbol y verificar si es menor o igual a uno.

    Aquí está una posible implementación de la función balanceado:

    La función balanceado recorre el árbol en profundidad y verifica si cada nodo cumple con la condición de balanceado. La función nodos cuenta el número de nodos en un subárbol dado.

    Para probar la función balanceado, podemos utilizar los ejemplos que has proporcionado:

Escribe tu solución