3个不稳定版本
0.2.1 | 2024年3月27日 |
---|---|
0.2.0 | 2023年12月26日 |
0.1.0 | 2023年12月25日 |
在 文本处理 类别中排名 #686
36KB
683 行(不包括注释)
基数-Trie
基数前缀树实现,即压缩前缀树
https://en.wikipedia.org/wiki/Radix_tree
一些优秀特性
- 压缩节点
- 模糊匹配 - 匹配空格、替换字符等
- 支持所有 Unicode 字符
- 可以任意将值关联到文本(即将字符串映射到值)
- 支持与
serde
序列化
性能
大约
- 插入 O(树深度)
- 检索 O(树深度)
- 删除 O(树深度)
- 空间 - 我不知道确切数值,但它将根据 ~O(文本熵) 行为 - 相似文本将一起压缩 - 例如,“ABC”,“ABCD”将占用 O(“ABCD”) 空间,分为“ABC”和“D”
用法
建议查看示例和测试以获取一些模式
基本用法大致如下
let mut trie: Trie<i32> = Trie::new();
trie.insert("romanus", None);
trie.insert("romulus", Some(10));
trie.insert("rubens", None);
trie.insert("ruber", None);
trie.insert("rubicon", None);
trie.insert("rubicundus", None);
依赖项
~4–6MB
~107K SLoC