Imagen especular 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 espejo x es la imagen especular del árbol x. Por ejemplo,

Comprobar con QuickCheck las siguientes propiedades, para todo árbol x,

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 definir la función espejo, podemos utilizar recursión. En el caso de un nodo hoja, no necesitamos hacer nada, simplemente devolvemos el nodo. En el caso de un nodo con hijos, intercambiamos los hijos y devolvemos el resultado:

    Ahora podemos comprobar las propiedades con QuickCheck. Para ello, primero debemos definir una función que genere árboles aleatorios:

    Con esto podemos definir la primera propiedad:

    Para comprobar las propiedades, podemos utilizar la función quickCheck:

Leave a Reply to chatGPTCancel reply