美文网首页树形结构
Trie Tree(字典树/前缀树/单词查找树)

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

作者: myFamily329 | 来源:发表于2020-01-16 10:35 被阅读0次

1. 前缀树的应用

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

2. 字典树的结构

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

  • children:数组或集合,罗列出每个分支当中包含的所有字符。最多有R个指向子结点的连接,其中每个链接对应字母表数据集中的一个字母。本文中假定 R,R 为 26,小写拉丁字母的数量。
  • isEnd: 布尔字段,用于指定结点对应键的结尾还是键前缀
    根节点为空的,除了根节点,其他所有节点都有可能为单词的结尾,叶子节点一定为单词结尾。

3. 字典树与哈希表

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

  • 找到具有相同前缀的的全部键值
  • 按字典序枚举字符串的数据集

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

4. Trie树的插入

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

  • 链接存在,沿着链接移动到下一个子层。算法继续搜索下一个键字符;
  • 链接不存在,创建一个新结点,并将它于父结点的链接相连,该结点与当前键字符匹配。

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

5. Trie树的查找

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

  • 存在链接。我们移动到该链接后面路径中的下一个节点,并继续搜索下一个键字符。
  • 不存在链接。若已无剩余键字符,且当前结点标记为 isEnd,则返回 true。否则有两种可能,均返回 false :
    1). 还有键字符剩余,但无法跟随 Trie 树的键路径,找不到键。
    2). 没有键字符剩余,但当前结点没有标记为 isEnd。也就是说,待查找键只是Trie树中另一个键的前缀。

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

6. 相关题目实践

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

相关文章

  • 数据结构与算法(第一季):Trie

    一、概念 Trie 也叫做字典树、前缀树(Prefix Tree)、单词查找树。 Trie 搜索字符串的效率主要跟...

  • 数据结构-Trie

    ◼ Trie 也叫做字典树、前缀树(Prefix Tree)、单词查找树◼ Trie 搜索字符串的效率主要跟字符串...

  • Trie 和哈夫曼树

    Trie 也叫作字典树, 前缀树(Prefix Tree), 单词查找树 Trie 搜索字符串的效率跟字符串的长度...

  • 19_Trie

    Trie也叫做字典树、前缀树(Prefix Tree)、单词查找树 Trie搜索字符串的效率主要跟字符串的长度有关...

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

    1. 前缀树的应用 自动补全、拼写检查、最长前缀匹配、单词游戏 2. 字典树的结构 Trie树是一个有根的树,其结...

  • trie树

    文章内容来自 Trie树:应用于统计和排序Trie树 trie树又称:字典树、单词查找树、前缀树等,总之是一种树状...

  • 以太坊详解 之 Merkle Patricia Tree

    基础知识 Trie树 Trie是一种搜索树,又称字典树(digital tree)和前缀树(prefix tree...

  • 数据结构基础--前缀树&&后缀树

    本文只是自己的笔记,并不具备过多的指导意义。 前缀树 何为前缀树 前缀树又名字典树,单词查找树,Trie树,是一种...

  • 以太坊源码阅读笔记-重要的数据结构:MPT

    Trie树 字典树,单词查找树,前缀树 利用公共前缀来节约存储空间,但是如果前缀都不相同,将很耗内存 原理 从根节...

  • Trie

    1、概述 1、Trie又叫前缀树、字典树、单词查找树。 2、Trie搜索字符串的效率主要和搜索字符串的长度有关。 ...

网友评论

    本文标题:Trie Tree(字典树/前缀树/单词查找树)

    本文链接:https://www.haomeiwen.com/subject/woffzctx.html