GeomAlg-0.2.3: Library of geometric algorithms in HaskellSource codeContentsIndex
GeomAlg.External.DynamicArray
Description
Dynamic arrays
Synopsis
data Array s a
empty :: ST s (Array s a)
fromList :: [a] -> ST b (Array b a)
insert :: Array s a -> a -> ST s Int
delete :: Array a b -> Int -> ST a ()
lookup :: Array a b -> Int -> ST a (Maybe b)
lookupMany :: Array s a -> [Int] -> ST s [Maybe a]
getThe :: Array s a -> Int -> ST s a
getThem :: Array s a -> [Int] -> ST s [a]
nextIndex :: Array s a -> ST s Int
update :: Array a b -> (Int, b) -> ST a ()
updateMany :: Array a b -> [(Int, b)] -> ST a ()
freeze :: Array s a -> ST s (Array Int (Maybe a))
assocs :: Array s a -> ST s [(Int, a)]
elems :: Array s a -> ST s [a]
indices :: Array s a -> ST s [Int]
pprint :: ((Int, a) -> Doc) -> Array s a -> ST s Doc
size :: Array s a -> ST s Int
amap :: (a -> b) -> Array s a -> ST s (Array s b)
Documentation
data Array s a Source

Wir benutzen ein Array, das bei Bedarf vergrert wird cite[K. 18.4]{cormen90:introduction}. Unsere Funktion zum Lschen eines Elementes |delete| ist `schwach' cite{klein97:cg}, da der Speicherplatz nicht wieder freigemacht wird. Andernfalls mten `Compaction'-Algorithmen implementiert werden.

Wir speichern den aktuellen Index und die Gre des Arrays.

empty :: ST s (Array s a)Source
fromList :: [a] -> ST b (Array b a)Source
insert :: Array s a -> a -> ST s IntSource
delete :: Array a b -> Int -> ST a ()Source
lookup :: Array a b -> Int -> ST a (Maybe b)Source
lookupMany :: Array s a -> [Int] -> ST s [Maybe a]Source
getThe :: Array s a -> Int -> ST s aSource
getThem :: Array s a -> [Int] -> ST s [a]Source
nextIndex :: Array s a -> ST s IntSource
update :: Array a b -> (Int, b) -> ST a ()Source
updateMany :: Array a b -> [(Int, b)] -> ST a ()Source
freeze :: Array s a -> ST s (Array Int (Maybe a))Source
assocs :: Array s a -> ST s [(Int, a)]Source
elems :: Array s a -> ST s [a]Source
indices :: Array s a -> ST s [Int]Source
pprint :: ((Int, a) -> Doc) -> Array s a -> ST s DocSource
size :: Array s a -> ST s IntSource
amap :: (a -> b) -> Array s a -> ST s (Array s b)Source
Produced by Haddock version 2.4.2