加载中...
前缀树又称字典树,是一种用于高效存储和检索字符串集合的树形数据结构。它把公共前缀合并到同一条路径上,查找、插入的时间复杂度只与字符串长度有关,常用于自动补全、拼写检查和 IP 路由等场景。

| 类型 | 树形数据结构 |
| 别名 | 字典树、单词查找树 |
| 查找复杂度 | O(键长度) |
| 典型应用 | 自动补全、路由匹配 |
| 常见优化 | 压缩前缀树、双数组 |
前缀树(Trie)又称字典树或单词查找树,是一种专门用于存储字符串集合的树形数据结构。它的核心思想是把具有相同前缀的字符串共享同一条路径,从而实现快速的前缀匹配和检索。Trie 这个名称来源于英文单词 retrieval(检索)。
与哈希表相比,前缀树的查询效率只取决于键的长度,而与集合中元素的总数无关,并且天然支持前缀查询这种哈希表难以高效完成的操作。它的每条从根到某节点的路径就对应一个字符串前缀,叶子或带标记的节点表示一个完整的词。
基本前缀树在字符集较大时会占用较多空间,因此衍生出压缩前缀树(基数树)、双数组 Trie 等优化结构,以节省内存并加速访问。
问:前缀树和哈希表如何取舍?答:哈希表适合精确的单键查询,平均常数时间;前缀树则擅长前缀匹配、有序遍历和范围查询。若业务需要按前缀检索或排序输出,前缀树更合适。
问:前缀树的主要缺点是什么?答:当字符集很大或字符串稀疏时,节点会包含大量空指针,内存占用较高。可以用压缩前缀树或双数组等结构来降低空间开销。

| 类型 | 树形数据结构 |
| 别名 | 字典树、单词查找树 |
| 查找复杂度 | O(键长度) |
| 典型应用 | 自动补全、路由匹配 |
| 常见优化 | 压缩前缀树、双数组 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧