python-chartrie icon indicating copy to clipboard operation
python-chartrie copied to clipboard

Pure C character trie implementation, wrapped into python extension

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