树形结构

Trie Tree(字典树/前缀树/单词查找树)

2020-01-16  本文已影响0人  myFamily329

1. 前缀树的应用

自动补全、拼写检查、最长前缀匹配、单词游戏

2. 字典树的结构

Trie树是一个有根的树,其结点具有以下字段【每个节点都至少包含两个属性】:

3. 字典树与哈希表

哈希表可以在O(1)时间内寻找键值,但是无法高效完成:

Trie树优于哈希表的另一个理由:随着哈希表大小的增加,会出现大量冲突,可能最会的时间复杂度为O(n), 其中n为插入表中键值的个数。同时,Trie树在存储多个相同前缀的键时可以使用较少空间。此时Trie树只需O(m), 其中m为键长。

4. Trie树的插入

从根节点开始搜索它对应的第一个键字符的链接,存在两种情况:

重复上述步骤,直到达到最后一个键字符,然后将当前结点标记为结束字符,算法完成。

5. Trie树的查找

每个键在Trie中表示为从根内部节点到叶子结点的路径。用第一个键字符从根开始,检查当前结点与键字符对应的链接,存在两种情况:

时间复杂度 : O(m)。算法的每一步均搜索下一个键字符。最坏的情况下需要 m 次操作。
空间复杂度 : O(1)

6. 相关题目实践

leetcode208: Trie树的基本操作
leetcode211: 单词搜索I
leetcode212: 单词搜索II
leetcode421: 数组中两个数之间最大的异或值

上一篇 下一篇

猜你喜欢

热点阅读