208.实现Trie(前缀树)

208. 实现 Trie (前缀树)

Trie树(又叫「前缀树」或「字典树」)是一种用于快速查询「某个字符串/字符前缀」是否存在的数据结构。

其核心是使用「边」来代表有无字符,使用「点」来记录是否为「单词结尾」以及「其后续字符串的字符是什么」。

图片

一、二维数组(不易理解)

  • 使用二维数组trie[] 来存储所有的单词字符。

  • 使用 index来自增记录到底用了多少个格子(相当于给被用到格子进行编号)。

  • 使用 count数组记录某个格子被「被标记为结尾的次数」(当 idx编号的格子被标记了n次,则有 count[idx]=n)。

    如插入”apple“、”ape“后,trie数组、count数组如下:

    a
    b
    c
    d
    e
    ...
    l
    ...
    p
    ...
    z
    count[i]

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    2

    0

    0

    2

    0

    0

    0

    0

    6

    0

    3

    0

    0

    3

    0

    0

    0

    0

    0

    4

    0

    0

    0

    4

    0

    0

    0

    0

    5

    0

    0

    0

    0

    5

    0

    0

    0

    0

    0

    0

    0

    0

    1

    6

    0

    0

    0

    0

    0

    0

    0

    0

    1

二、TrieNode(推荐)

定义数据结构TrieNode,是一个26叉树

最后更新于