3个不稳定版本
0.5.0 | 2024年2月24日 |
---|---|
0.4.1 | 2023年12月27日 |
0.4.0 | 2023年12月27日 |
#766 在 数据结构
每月 43次下载
用于 ilex
160KB
3K SLoC
twie
twie
[twaɪ] - 快速压缩的前缀树。
这个crate提供了一个Trie
类型,该类型实现了一个具有切片键的关联容器。它有以下属性。
-
大多数一次操作都是最坏情况下的O(n),其中n是键的字节长度。这可能需要最多2n个树跳跃,但内部表示尝试在可能的情况下最小化这一点。
-
找到trie中所有字符串的前缀也是O(n)。这些前缀按顺序提供。
-
从一个迭代器构建trie是二次的。
-
整个trie的子trie(即具有某些特定前缀的所有条目)可以像常规trie一样操作(不幸的是,插入只支持从根开始)。
-
存储键的内存是共享的。
-
trie的内部索引类型是可配置的,这允许通过缩小树节点的大小来交换最大键大小,从而减少内存使用。
let words = Trie::<str, i32>::from([
("poise", 0),
("poison", 1),
("poisonous", 2),
("poison #9", 3),
]);
assert_eq!(
words.prefixes("poisonous snake").map(|(k, _)| k).collect::<Vec<_>>(),
["poison", "poisonous"],
)
依赖关系
~1MB
~13K SLoC