什么是 Trie 数据结构?2025年4月6日 | 阅读 7 分钟 “Trie”这个词是“retrieval”(检索)一词的摘录。Trie 是一种基于排序树的数据结构,用于存储字符串集合。它的每个节点中指针的数量等于字母表中字符的数量。它可以在字典中借助单词的前缀来搜索一个词。例如,如果我们假设所有字符串都由英文字母表中的 'a' 到 'z' 组成,那么每个 trie 节点最多可以有 26 个指针。 Trie 也被称为数字树(digital tree)或前缀树(prefix tree)。节点在 Trie 中的位置决定了与该节点连接的键。 Trie 对于字符串集合的属性
下图描绘了 bell、bear、bore、bat、ball、stop、stock 和 stack 的 trie 表示。 ![]() Trie 的基本操作Trie 有三种操作
在 Trie 中插入节点第一个操作是在 trie 中插入一个新节点。在我们开始实现之前,理解一些要点很重要:
在 Trie 中插入新节点的实现 在 Trie 中搜索节点第二个操作是在 Trie 中搜索节点。搜索操作与插入操作类似。搜索操作用于在 trie 中搜索一个键。搜索操作的实现如下所示。 在 Trie 中搜索节点的实现 在 Trie 中删除节点第三个操作是在 Trie 中删除节点。在我们开始实现之前,理解一些要点很重要:
在 Trie 中删除节点的实现 Trie 的应用1. 拼写检查器 拼写检查是一个三步过程。首先,在字典中查找该词,生成可能的建议,然后对建议词进行排序,将期望的词放在顶部。 Trie 用于在字典中存储单词。通过在数据结构上搜索单词,可以以最有效的方式轻松应用拼写检查器。使用 trie 不仅可以轻松地在字典中查找单词,而且构建一个算法来包含一组相关词或建议也很简单。 2. 自动完成 自动完成功能广泛用于文本编辑器、移动应用程序和互联网上。它提供了一种简单的方法来查找替代词以完成单词,原因如下:
3. 浏览器历史 它也用于在浏览器中补全 URL。浏览器会保留您访问过的网站 URL 的历史记录。 Trie 的优点
Trie 的缺点
C++ 完整程序输出 Search the word ohh: Not Found Search the word bag: Found! Search the word can: Found! Search the word ways: Not Found Search the word way: Found! → h → e → l → l → o → w → a → y → i → t → e → a → b → a → g → c → a → n deleting the word 'hello'... → w → a → y → h → i → t → e → a → b → a → g → c → a → n deleting the word 'can'... → w → a → y → h → i → t → e → a → b → a → g 下一个主题堆数据结构 |
我们请求您订阅我们的新闻通讯以获取最新更新。