Skip to content

buriy/python-chartrie

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=============
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

Resources

Stars

Watchers

Forks

Packages

No packages published