树结构-------前缀树

何为前缀树:又叫字典树、单词查找树或键树,是一种多叉树结构。如下图


上图是一棵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++(表示有多少个以他结尾的字符串)。


前缀树的查找操作:


前缀树的删除操作:


前缀树的前缀字符匹配操作:


欢迎来讨论~


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页