Árboles continuos

Los árboles binarios se pueden representar con el de tipo de dato algebraico

Por ejemplo, los árboles

se representan por

Un árbol binario es continuo si el valor absoluto de la diferencia de los elementos adyacentes es 1. Por ejemplo, el árbol ej1 es continuo ya que el valor absoluto de sus pares de elementos adyacentes son

En cambio, el ej2 no lo es ya que |8-10| ≠ 1.

Definir la función

tal que (esContinuo x) se verifica si el árbol x es continuo. Por ejemplo,

Soluciones

Referencias

Números super pandigitales

Un entero positivo n es pandigital en base b si su expresión en base b contiene todos los dígitos de 0 a b-1 al menos una vez. Por ejemplo,

  • el 2 es pandigital en base 2 porque 2 en base 2 es 10,
  • el 11 es pandigital en base 3 porque 11 en base 3 es 102 y
  • el 75 es pandigital en base 4 porque 75 en base 4 es 1023.

Un número n es super pandigital de orden m si es pandigital en todas las bases
desde 2 hasta m. Por ejemplo, 978 es super pandigital de orden 5 pues

  • en base 2 es: 1111010010
  • en base 3 es: 1100020
  • en base 4 es: 33102
  • en base 5 es: 12403

Definir la función

tal que (superPandigitales m) es la lista de los números super pandigitales de orden m. Por ejemplo,

Soluciones

Elementos que respetan la ordenación

Se dice que un elemento x de una lista xs respeta la ordenación si x es mayor o igual que todos lo que tiene delante en xs y es menor o igual que todos lo que tiene detrás en xs. Por ejemplo, en la lista lista [3,2,1,4,6,5,7,9,8] el número 4 respeta la ordenación pero el número 5 no la respeta (porque es mayor que el 6 que está delante).

Definir la función

tal que (respetuosos xs) es la lista de los elementos de xs que respetan la ordenación. Por ejemplo,

Comprobar con QuickCheck que para cualquier lista de enteros xs se verifican las siguientes propiedades:

  • todos los elementos de (sort xs) respetan la ordenación y
  • en la lista (nub (reverse (sort xs))) hay como máximo un elemento que respeta la ordenación.

Soluciones

Listas engarzadas

Una lista de listas es engarzada si el último elemento de cada lista coincide con el primero de la siguiente.

Definir la función

tal que (engarzada xss) se verifica si xss es una lista engarzada. Por ejemplo,

Soluciones

Listas alternadas

Una lista de números enteros se llama alternada si sus elementos son alternativamente par/impar o impar/par.

Definir la función

tal que (alternada xs) se verifica si xs es una lista alternada. Por ejemplo,

Soluciones