Rama izquierda de un árbol binario

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

Por ejemplo, el árbol

se puede representar por

Definir la función

tal que ramaIzquierda a es la lista de los valores de los nodos de la rama izquierda del árbol a. 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. Para resolver este problema, podemos utilizar una función recursiva que, para cada nodo del árbol, devuelva la lista de los valores de los nodos de la rama izquierda de su hijo izquierdo y, además, añada el valor del propio nodo a la lista.

    Así, podemos implementar la función de la siguiente manera:

    La función primero comprueba si el árbol es un nodo nulo (caso base). Si es así, devuelve la lista vacía. En caso contrario, añade el valor del nodo a la lista y llama a sí misma recursivamente para calcular la rama izquierda del hijo izquierdo del nodo.

    Por ejemplo, si queremos calcular la rama izquierda del árbol que has mencionado como ejemplo, la función se ejecutaría de la siguiente manera:

Escribe tu solución