Trie--前缀树(转)
来源:互联网 发布:淘宝怎么看上下架时间 编辑:程序博客网 时间:2024/04/29 07:57
简介
Trie树,又称单词查找树、前缀树,是一种哈希树的变种。应用于字符串的统计与排序,经常被搜索引擎系统用于文本词频统计, suggestion等场景.
如图所示:
含有单词“tea”“tree”“A”“ZSU”的一棵Trie。
特性
- 根节点不包含字符,除根节点外的每一个节点都只包含一个字符。
- 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。
- 每个节点的所有子节点包含的字符都不相同。
优点
- 查询快。对于长度为m的键值,最坏情况下只需花费O(m)的时间;
- 当存储大量字符串时,Trie耗费的空间较少。因为键值并非显式存储的,而是与其他键值共享子串;
- Trie适用于“最长前缀匹配”;
操作
初始化或清空
遍历Trie,删除所有节点,只保留根节点。
插入字符串
- 设置当前节点为根节点,设置当前字符为插入字符串中的首个字符;
- 在当前节点的子节点上搜索当前字符,若存在,则将当前节点设为值为当前字符的子节点;否则新建一个值为当前字符的子节点,并将当前结点设置为新创建的节点。.
- 将当前字符设置为串中的下个字符,若当前字符为0,则结束;否则转2.
查找字符串
搜索过程与插入操作类似,当字符找不到匹配时返回假;若全部字符都存在匹配,判断最终停留的节点是否为树叶,若是,则返回真,否则返回假。
删除字符串
首先查找该字符串,边查询边将经过的节点压栈,若找不到,则返回假;否则依次判断栈顶节点是否为树叶,若是则删除该节点,否则返回真。
0 0
- Trie--前缀树(转)
- Trie树trie(前缀)
- trie树(前缀树)
- 前缀树,Trie树
- Trie前缀树
- Trie(前缀树)
- Trie(前缀树)
- trie 前缀树
- 前缀树Trie
- Trie(前缀树)
- leetcode 前缀树(trie树)
- Trie(前缀树,prefix tree)
- Trie树统计单词前缀
- Trie前缀树简单实现
- Trie (Prefix Tree) 前缀树
- [hihoCoder 1014]Trie树[前缀树][前缀树的建立]
- Trie树(前缀树,字典树)
- Trie树,字典树,前缀树
- 洛谷 P1514 引水入城
- Java基础-异常处理(一)
- 高德地图之定位:
- eclipse修改package名,并且修改包名
- 安卓looper,messager,hander 详解
- Trie--前缀树(转)
- 总结Android开源项目及库
- Java框架数据库连接池比较(c3p0,dbcp和proxool)
- redo文件被删除或者redo文件所在的磁盘故障的处理方法
- & 和 &&
- leetcode-477-Total Hamming Distance
- HDU-1251 统计难题 (Trie)
- Nohttp详细使用文档
- 数组中只出现一次的数