License | Creative Commons |
---|---|
Maintainer | José A. Alonso |
Safe Haskell | Safe-Inferred |
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.
Synopsis
- 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
Show a => Show (CPrioridad a) Source # | |
Defined in I1M.ColaDePrioridad Methods showsPrec :: Int -> CPrioridad a -> ShowS # show :: CPrioridad a -> String # showList :: [CPrioridad a] -> ShowS # | |
Ord a => Eq (CPrioridad a) Source # | |
Defined in I1M.ColaDePrioridad |
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))