Pure C character trie implementation, wrapped into python extension
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
README
chartrie.c
chartrie.pyx
cysetup.py
sample.py
setup.py
stdafx.h
trie.c
trie.h

README

=============
CharTrie
=============

This is pure-C version of Trie data structure: http://en.wikipedia.org/wiki/Trie , 
also called "prefix tree", optimized for string keys and int values.

The current interface is the following::

    class CharTrie:
        def __len__(self)
        def __getitem__(self, key)
        def __setitem__(self, key, value)
        def dumps(self)
        def debug_print(self)
        def find(self, key)

    class FrozenCharTrie:
        def __len__(self)
        def __getitem__(self, key)
        def loads(self, stream)
        def debug_print(self)
        def find(self, key) # -> value or None
        def find_prefixes(trie, key) # -> [(position1, value1), (position2, value2), ...]
        def find_splits(self, FrozenCharTrie suffixes, key) # -> [(position1, prefix1, suffix1), (position2, prefix2, suffix2), ...]

Please note, that len(x) returns the number of chars in the trie, not the number of nodes with values.
Also, only values >= 0 are supported (until version 0.2)


------------
Licence: BSD
------------