Trie(字典树)是一种用于实现字符串快速检索的多叉树结构。Trie 的每个节点都拥有若干个字符指针,若在插入或检索字符串时扫描到一个字符 c,就沿着当前节点的 c 字符指针,走向该指针指向的节点。
Trie树可以 高效 支持 两个操作:
- 存储字符串集合
- 查询字符串集合
有一个 经验:凡是用到Trie树的题目,一般来说给出的字符串要么全是小写字母,要么全是大写字母,要么都是数字,要么全是0或1,总之字母类型不是很多。
下面来看看它是如何高效存储字符串的:
初始化
一棵空Trie树 仅包含一个根节点,该点的字符指针 均指向空。
插入
(1)过程分析
当需要 插入一个字符串S 时,我们令一个指针Р起初指向根节点。然后,依次扫描S中的每个字符c:
- 1.若
P的c字符指针 指向一个已经存在的节点Q,则 令P= Q。 - 2.若
P的c字符指针 指向空,则 新建一个节点Q

本文详细介绍了Trie树(字典树)的概念、插入和查询操作,以及它们的时间和空间复杂度。Trie树是一种用于快速检索字符串的数据结构,尤其适用于存储和查找字母或数字组成的字符串。在插入和查询过程中,Trie树能以树的高度作为主要时间复杂度,提供高效性能。此外,还给出了C++实现Trie树插入和查询的代码示例。
最低0.47元/天 解锁文章
357

被折叠的 条评论
为什么被折叠?



