License | Creative Commons |
---|---|
Maintainer | José A. Alonso |
Safe Haskell | Safe |
Language | Haskell2010 |
I1M.ColaDePrioridad
Description
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.
Instances
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.