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 /usr/share/dict/words 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 over 40% in some cases).

New in this version:

  • Refactored a lot of the datatypes for the Sets (much of their code is exactly the same now)

  • Made the get implementation shorter and clearer (thanks to olsner on IRC)

  • There is now a darcs repo: http://random.axman6.com/darcs/TernaryTrees/

© 2009 by Alex Mason (http://random.axman6.com/blog/). BSD3 license.

Modules

[Last Documentation]

  • Data
    • Map
      • Data.Map.TernaryMap
    • Set
      • Data.Set.StringSet
      • Data.Set.TernarySet

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-29T15:47:08Z
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 not available [build log]
Last success reported on 2016-12-31 [all 9 reports]