Logo
Section 1 / 14

什么是Trie?

本课程简要介绍“字典树”的概念、其特性以及常见应用。

导入

什么是Trie?

本课程简要介绍“字典树”的概念、其特性以及常见应用。

简介

上一节介绍了多种常见的树结构,如红黑树、2-3树等。

现在,你将学习一种类似树的数据结构,它在解决与字符串相关的编程问题时表现出极高的效率。

这种数据结构称为 Trie,也被称为 前缀树。你很快就会明白它的命名原因。

💡 小知识
“Trie” 这个词源自英文单词 “retrieval”(检索),因为该结构的主要用途就是实现快速查找。Trie 广泛应用于字典中查找单词、搜索引擎的自动补全功能以及IP路由等场景。

...
一个典型的Trie

Trie 的常见应用场景

通过一些实际例子,来理解 Trie 的作用。

1. 自动补全功能

如今,几乎所有主流应用都支持自动补全功能。借助 Trie 可以高效实现这一功能,显著降低性能开销。

2. 拼写检查

当用户输入一个单词时,Trie 可用于进行拼写检查。这项功能对那些不确定正确拼写的用户非常有帮助。

3. 查找联系人

另一个实际应用场景是联系人搜索。系统可以根据用户输入的字母组合提供自动建议。虽然哈希表也能实现类似功能,但 Trie 在效率上更具优势。

Trie 的特性

为了保持其高效的性能,Trie 遵循特定的结构设计:

  • Trie 类似于树结构,由多个节点组成,每个节点代表一个唯一的字母。

  • 每个节点可以指向 null 或其他子节点。

  • Trie 的大小取决于所用字母的数量。例如,在英语中,字母表包含 26 个字母,因此每个节点最多可以有 26 个子节点。

  • Trie 的深度取决于其所存储的最长单词的长度。

  • 另一个关键特性是:具有相同前缀的单词会共享相同的路径。例如,“there” 和 “their” 共享前缀 “the”,因此它们的路径会一直延续到字母 “e”。之后路径才会分叉为两条分支。这正是 Trie 功能的核心机制。

树结构简介

Trie 的结构