📜  递归插入Trie(1)

📅  最后修改于: 2023-12-03 15:12:22.364000             🧑  作者: Mango

递归插入 Trie

Trie,也叫字典树或前缀树,是一种用于高效存储和查找字符串的数据结构。在 Trie 中,每个节点代表一个字符串的前缀,从根节点开始构建到某个节点的字符串就是该节点代表的字符串。

递归插入 Trie 是一种常见的方式,它利用了 Trie 的特性,通过不断地从根节点往下遍历 Trie 树,在遇到不存在的字符时,则在 Trie 树上新建节点,一直重复该过程,直到插入完整个字符串为止。

下面是一个 Python 实现的例子:

class Trie:
    def __init__(self):
        self.root = {}

    def insert(self, word):
        """
        Inserts a word into the trie.
        """
        node = self.root
        for c in word:
            if c not in node:
                node[c] = {}
            node = node[c]
        node['-'] = True

该实现中,我们在 Trie 类的初始化方法中初始化 Trie 树的根节点 root,其值为一个空字典。然后,我们定义了一个 insert 方法,用于递归插入字符串。该方法接收一个字符串 word 参数。

在 insert 方法中,我们从 Trie 树的根节点开始遍历,循环遍历字符串 word 中的每个字符 c。我们通过 node[c] 获取节点 c 对应的字典,并将 node 的值更新为该字典。

如果在 Trie 树中不存在字符 c,我们就使用 node[c] = {} 在 Trie 树上新建节点。在循环结束时,我们在最终节点上加上一个特殊标记 -,表示该节点是某个字符串的结尾。

我们可以通过 Trie 树上遍历是否存在该特殊标记来区分一个字符串是否在 Trie 树中存在。