PFH: La semana en Exercitium (4 de febrero de 2023)

Esta semana he publicado en Exercitium las soluciones de los siguientes problemas:

A continuación se muestran las soluciones.

1. TAD de las pilas: Reconocimiento de prefijos de pilas

Utilizando el tipo abstracto de datos de las pilas, definir la función

tal que prefijoPila p1 p2 se verifica si la pila p1 es justamente un prefijo de la pila p2. Por ejemplo,

Soluciones

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


Soluciones en Haskell


Soluciones en Python

2. TAD de las pilas: Reconocimiento de subpilas

Utilizando el tipo abstracto de datos de las pilas, definir la función

tal que subPila p1 p2 se verifica si p1 es una subpila de p2. Por ejemplo,

Soluciones

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


Soluciones en Haskell


Soluciones en Python

3. TAD de las pilas: Reconocimiento de ordenación de pilas

Utilizando el tipo abstracto de datos de las pilas, definir la función

tal que ordenadaPila p se verifica si los elementos de la pila p están ordenados en orden creciente. Por ejemplo,

Soluciones

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


Soluciones en Haskell


Soluciones en Python

4. TAD de las pilas: Ordenación de pilas por inserción

Utilizando el tipo abstracto de datos de las pilas, definir la función

tal que ordenaInserPila p es la pila obtenida ordenando por inserción los los elementos de la pila p. Por ejemplo,

Comprobar con QuickCheck que la pila (ordenaInserPila p) está ordenada.

Soluciones

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


Soluciones en Haskell


Soluciones en Python

5. TAD de las pilas: Eliminación de repeticiones en una pila

Utilizando el tipo abstracto de datos de las pilas, definir la función

tal que nubPila p es la pila con los elementos de p sin repeticiones. Por ejemplo,

Soluciones

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


Soluciones en Haskell


Soluciones en Python