jeffzhengye / python-chartrie

Pure C character trie implementation, wrapped into python extension

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

=============
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
------------

About

Pure C character trie implementation, wrapped into python extension