License | Creative Commons |
---|---|
Maintainer | José A. Alonso |
Safe Haskell | Safe |
Language | Haskell2010 |
TAD (tipo abstracto de datos) de las colas de prioridad.
Este módulo contiene el código del TAD de las colas de prioridad estudiado en el tema 16 del curso.
- data CPrioridad a
- vacia :: Ord a => CPrioridad a
- inserta :: Ord a => a -> CPrioridad a -> CPrioridad a
- primero :: Ord a => CPrioridad a -> a
- resto :: Ord a => CPrioridad a -> CPrioridad a
- esVacia :: Ord a => CPrioridad a -> Bool
- valida :: Ord a => CPrioridad a -> Bool
Documentation
data CPrioridad a Source
Tipo de datos de las colas de prioridad.
Ord a => Eq (CPrioridad a) Source | |
Show a => Show (CPrioridad a) Source |
vacia :: Ord a => CPrioridad a Source
vacia es la cola de prioridad vacía. Por ejemplo,
vacia == CP Vacio
inserta :: Ord a => a -> CPrioridad a -> CPrioridad a Source
(inserta x c) añade el elemento x a la cola de prioridad c. Por ejemplo,
ghci> foldr inserta vacia [3,1,7,2,9] CP (M 1 2 (M 2 2 (M 9 1 VacioM VacioM) (M 7 1 VacioM VacioM)) (M 3 1 VacioM VacioM)) ghci> inserta 5 (foldr inserta vacia [3,1,7,2,9]) CP (M 1 2 (M 2 2 (M 9 1 VacioM VacioM) (M 7 1 VacioM VacioM)) (M 3 1 (M 5 1 VacioM VacioM) VacioM))
primero :: Ord a => CPrioridad a -> a Source
(primero c) es la cabeza de la cola de prioridad c. Por ejemplo,
primero (foldr inserta vacia [3,1,7,2,9]) == 1
resto :: Ord a => CPrioridad a -> CPrioridad a Source
(resto c) elimina la cabeza de la cola de prioridad c. Por ejemplo,
ghci> (foldr inserta vacia [3,1,7,2,9]) CP (M 1 2 (M 2 2 (M 9 1 VacioM VacioM) (M 7 1 VacioM VacioM)) (M 3 1 VacioM VacioM)) ghci> resto (foldr inserta vacia [3,1,7,2,9]) CP (M 2 2 (M 9 1 VacioM VacioM) (M 3 1 (M 7 1 VacioM VacioM) VacioM))
esVacia :: Ord a => CPrioridad a -> Bool Source
(esVacia c) se verifica si la cola de prioridad c es vacía. Por ejemplo,
esVacia (foldr inserta vacia [3,1,7,2,9]) == False esVacia vacia == True
valida :: Ord a => CPrioridad a -> Bool Source
(valida c) se verifica si c es una cola de prioridad válida. En la representación mediante montículo todas las colas de prioridad son válidas.