Readme for RBTree-0.0.4
Pure haskell implementation from Wu Xingbo (wuxb45@gmail.com) 2011
WARNING:This Implementation mainly concerns about functionality.
After that I will improve the performence and efficiency.
to Build & Install for yourself:
shell> runhaskell Setup.lhs configure --user
shell> runhaskell Setup.lhs build
shell> runhaskell Setup.lhs install
on any problem, you may try this:
shell> runhaskell Setup.lhs register
for system, replace '--user' with '--ghc'
run simple test:
ghci> :m + Data.Tree.RBTreeTest
ghci> testRB
It takes seconds to run. Then you will see "just xxxx True"s for success.
read Data.Tree.RBTreeTest.lhs for usage of RBTree.
change log (0.0.2):
add bangpatterns to some data field.
add ghc optimization flags to .cabal
be careful of memory usage. insert 10MiB Int values takes 3 seconds and 800MiB memory space.
change log (0.0.3):
add function "searchFast".
rename 'remove*' functions to 'delete*'s.
change log (0.0.4):
add functions for search min/max value.
add functions for search for a interval that the two values in the tree holds the given value
modified search functions can accept a 'compare' function like:
(b -> a -> Ordering)
search for an 'a' by first key of a (RBTree (a,b)) canbe done in such way:
> b :: Int
> b = 10
> t :: RBTree (Int,String)
> t = insertOrdList emptyRB [(1,"hello"), (2,"world")]
> result :: (Int,String)
> result = search (\k (k',_) -> k `compare` k') t 2
it returns "Just (2,"world")"