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