何为前缀树:又叫字典树、单词查找树或键树,是一种多叉树结构。如下图
上图是一棵Trie树,表示了关键字集合{“a”, “to”, “tea”, “ted”, “ten”, “i”, “in”, “inn”} 。从上图可以归纳出Trie树的基本性质:
①根节点不包含字符,除根节点外的每一个子节点都包含一个字符。
②从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。
③每个节点的所有子节点包含的字符互不相同。
④从第一字符开始有连续重复的字符只占用一个节点,比如上面的to,和ten,中重复的单词t只占用了一个节点。
前缀树的结构定义:path,end,next
前缀树的插入操作:插入操作解析:首先呢?先判断word是否为空,空的话就直接放回空了;
如果不为空的话,先将word字符串转换为字符数组,定义一个类型为TrieTree的node。
然后呢,用index来代表要去检查的路径(注意index 的由来),如果index这条路径为空的话,那么就给他新建一个节点;
并且node节点继续往下级走,path++,最后遍历完整个数组之后再end++(表示有多少个以他结尾的字符串)。
前缀树的查找操作:
前缀树的删除操作:
前缀树的前缀字符匹配操作:
欢迎来讨论~