码迷,mamicode.com
首页 > 其他好文 > 详细

Trie(前缀树)

时间:2018-02-09 14:50:38      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:有序   路径   value   个数   前缀树   第一个   nbsp   关键字   大于   

1 什么是Trie

Trie也叫前缀树,因为存放和查找的时候都是将关键字字符串从前到后一个字母一个字母的进行的,所以叫前缀树。根节点不存放字母,其它的每个结点都存放一个字母。如果某个结点的字母是要给关键字的最后一个字母,那么该节点还存放该路径对应的关键字的值。也就是说,整个关键字字符串存放在一条路径上。另外前缀树是有序树,每个结点的左子树存放的字母比该结点的要小,右子树存放的字母比该结点要大。

2 怎样创建一棵前缀树

可以用三个数组实现一棵前缀树,一个数组是树本身,一个是key,一个是value,树数组的每个元素是大小为4的子数组,里面分别存放该结点的字母,小于该结点的子树的结点的index,大于该结点的子树的结点的index,等于该结点的子树的结点的index,这个index用来找该结点对应的key和value。这是一棵二叉树前缀树。

3 查找Trie操作

对关键字逐个字母进行处理,第一个字母和第一层是不是有对的,如果没有那么不存在,如果有,那么查看第二个字母,第二个字母比第一个小,那么看左子树的根是不是能对上,依次继续。

4 插入Trie操作

首先定位出其父子,然后插在父子中间即可。

5 删除Trie操作

首先定位,然后删除。

 

Trie(前缀树)

标签:有序   路径   value   个数   前缀树   第一个   nbsp   关键字   大于   

原文地址:https://www.cnblogs.com/hustdc/p/8434360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!