Recorrido de árboles binarios

El árbol binario

se puede representar por

El tipo de los árboles binarios se puede definir por

Definir las funciones

tales que

  • preorden es la lista correspondiente al recorrido preorden del árbol x; es decir, primero visita la raíz del árbol, a continuación recorre el subárbol izquierdo y, finalmente, recorre el subárbol derecho. Por ejemplo,

  • postorden x es la lista correspondiente al recorrido postorden del árbol x; es decir, primero recorre el subárbol izquierdo, a continuación el subárbol derecho y, finalmente, la raíz del árbol. Por ejemplo,

Comprobar con QuickCheck que la longitud de la lista obtenida recorriendo un árbol en cualquiera de los sentidos es igual al número de nodos del árbol más el número de hojas.
Soluciones

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


Soluciones en Haskell


Soluciones en Python

Profundidad de un árbol binario

El árbol binario

se puede representar por

El tipo de los árboles binarios se puede definir por

Definir la función

tal que profundidad x es la profundidad del árbol x. Por ejemplo,

Comprobar con QuickCheck que para todo árbol biario x, se tiene que

Soluciones

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


Soluciones en Haskell


Soluciones en Python

Número de hojas de un árbol binario

El árbol binario

se puede representar por

El tipo de los árboles binarios se puede definir por

Definir las funciones

tales que

  • (nHojas x) es el número de hojas del árbol x. Por ejemplo,

  • (nNodos x) es el número de nodos del árbol x. Por ejemplo,

Comprobar con QuickCheck que en todo árbol binario el número de sus hojas es igual al número de sus nodos más uno.

Soluciones

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


Soluciones en Haskell


Soluciones en Python

El tipo de los árboles binarios

1. El tipo de los árboles binarios en Haskell

El árbol binario

se puede representar por

usando el tipo de los árboles binarios definido como se muestra a continuación.

2. El tipo de los árboles binarios en Python

El árbol binario

se puede representar por

usando la definición de los árboles binarios que se muestra a continuación.

El tipo de las expresiones aritméticas: Número de operaciones en una expresión

Usando el tipo de las expresiones aritméticas, definir la función

tal que numeroOps e es el número de operaciones de e. Por ejemplo,

Soluciones

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


Soluciones en Haskell


Soluciones en Python