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

标签: 树结构快速入门
5人阅读 评论(0) 收藏 举报
分类:

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


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


前缀树的查找操作:


前缀树的删除操作:


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


欢迎来讨论~


查看评论

Trie 前缀树/字典树/单词查找树(数据结构)

写完了KMP算法的博客之后,我下定决心,一定要写出一篇关于“AC自动机的博客”。AC自动机实际上就是字典树上的KMP算法。所以,考虑到广大同学不一定会写Trie树,特此在此处写了一篇文章介绍介绍这种数...
  • GGN_2015
  • GGN_2015
  • 2017-03-28 08:13:34
  • 449

Trie树-脏词过滤应用

Trie树,又称字符查找树、前缀树,主要用于字符匹配(详见http://en.wikipedia.org/wiki/Trie)。适合做关键词查找,比如查找文章中的关键字然后给他们加链接。 当然对脏词的...
  • maddemon
  • maddemon
  • 2011-11-25 13:40:22
  • 3254

Trie树(字典树,前缀树,键树)分析详解

Trie树概述   Trie树,又称字典树、前缀树、单词查找树、键树,是一种多叉树形结构,是一种哈希树的变种。Trie这个术语来自于retrieval,发音为/tri:/ “tree”,也有人读为/t...
  • u010599509
  • u010599509
  • 2017-01-13 17:32:01
  • 1892

前缀树(Trie)原理及Java实现

前缀树的结构Trie树,又叫字典树、前缀树(Prefix Tree)、单词查找树或键树,是一种多叉树结构。如下图: 上图是一棵Trie树,表示了关键字集合{“a”, “to”, “tea”, “te...
  • u013309870
  • u013309870
  • 2017-05-02 15:43:36
  • 2914

支持中文的基于词为基本粒度的前缀树(prefix trie)python实现

Trie树,也叫字典树、前缀树。可用于”predictive text”和”autocompletion”,亦可用于统计词频(边插入Trie树边更新或添加词频)。 在计算机科学中,trie,又称前缀...
  • yangxudong
  • yangxudong
  • 2014-10-28 13:35:11
  • 2202

前缀树的实现

Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地...
  • u013949069
  • u013949069
  • 2017-09-21 23:06:40
  • 437

标准trie树(前缀树)的介绍及java实现

一、前缀树介绍 (注:本节内容来源于网络)   定义:  所有含有公共前缀的字符串将挂在树中同一个结点下。实际上trie简明的存储了存在于串集合中的所有公共前缀。 假如有...
  • u012723548
  • u012723548
  • 2015-11-22 02:19:42
  • 1824

从前缀树谈到后缀树

前一阵看的数据结构比较多,刚好放假没事,把一些我认为重要的写成博客记录下来。 今天主要看的是树中的两个比较重要的数据结构 前缀树和后缀树 这两个树的应用特别广,但是我认为常看课外技术书籍的,博客...
  • wwh578867817
  • wwh578867817
  • 2015-04-05 11:48:53
  • 7451

前缀树和后缀树

今天主要看的是树中的两个比较重要的数据结构——前缀树和后缀树。在此之前,先来看两个问题。(参考博客:从Trie树(字典树)谈到后缀树)...
  • u013949069
  • u013949069
  • 2017-09-21 19:49:04
  • 551

字符串算法:Trie树(前缀树)、后缀树

Trie树Trie树,又称字典树、前缀树,是一种树形结构,是一种哈希树的变种,是一种用于快速检索的多叉树结构。 典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文...
  • jinzhao1993
  • jinzhao1993
  • 2016-10-29 22:08:17
  • 3394
    个人资料
    持之以恒
    等级:
    访问量: 398
    积分: 288
    排名: 27万+
    文章存档
    最新评论