TernaryTrees: Efficient pure ternary tree Sets and Maps

[ bsd3, data-structures, library, program ] [ Propose Tags ] [ Report a vulnerability ]

Ternary trees are an efficient structure often used for storing strings for fast lookups. This package implements a generic tree for storing lists of Ord instances, and a specialised String implementation which is about 30% faster than the generic version.

An example program is provided what shows how to use the package as a dictionary program for spell checking, and how it can be used to serialise data with Don Stewart's Data.Binary package.

From my testing, using the usrshartdictwords file on my system (over 230,000 words), inserting all words, checking they all exist in the tree, writing them to a binary file, reading them back in and checking the read in result is the same as the original takes slightly over 3 seconds using the StringSet. The written file is also slightly smaller than the input (by about 10% for shuffled data, and 7% for in order data).

New in this version:

  • Added the all important getVal function to Data.Map.TernaryMap.

  • (Hopefully fixed this .cabal file again).

© 2009 by Alex Mason (http://axman6.homeip.net/blog/); BSD3 license.

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.0.1, 0.0.2, 0.0.2.1, 0.0.2.2, 0.0.3.0, 0.0.4.0, 0.1.0.0, 0.1.1.0, 0.1.1.1, 0.1.2.0, 0.1.3.0, 0.1.3.1, 0.1.3.2, 0.1.3.3, 0.1.3.4, 0.2.0.0, 0.2.0.2
Dependencies base (>=4.0.0.0 && <5.0.0.0), binary (>=0.5.0.0) [details]
License BSD-3-Clause
Author Alex Mason
Maintainer Alex Mason (irc: Axman6) <axman6@gmail.com>
Category Data Structures
Uploaded by AlexMason at 2009-06-28T06:21:14Z
Distributions NixOS:0.2.0.2
Reverse Dependencies 1 direct, 0 indirect [details]
Executables tdict
Downloads 14502 total (60 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]