算法合集之《Trie图的构建活用与改进》.docVIP

  • 7
  • 0
  • 约7.28千字
  • 约 7页
  • 2016-04-25 发布于重庆
  • 举报

算法合集之《Trie图的构建活用与改进》.doc

算法合集之《Trie图的构建活用与改进》

Trie图的构建、活用与改进 Maigo 2006.1.14 我们知道trie树(也叫字母树)这种数据结构。它是词典的一种存储方式。词典中的每一个单词在trie树中表现为一条从根结点出发的路径,路径中边上的字母连起来就形成对应的单词。图1就是一棵trie树,其中含有a,abc,bac,bbc,ca五个单词。 利用trie树可以对词典中的单词进行一些适合用树这种数据结构进行的操作,如求两个单词的公共前缀长度(在树中表现为求两个单词对应结点的最近公共祖先)。其实,如果把trie树加以改造,多连一些边,形成的trie图在解决多模式串匹配问题上会发挥奇效。 左:图1,一棵含有五个单词的trie树。红色表示单词终止的位置。   右:图2,由图1的trie树改造成的trie图。红色表示危险结点,白色表示真安全结点,蓝色表示新加的边。为简单起见,危险结点以下的结点及与之关联的边没有画出。 一、Trie图的构建 我们通过一个例题来探究trie图的构建方法。 【例1】不良单词探测器 【题目描述】给出一个词典,其中的单词为不良单词。单词均为小写字母。再给出一段文本,文本的每一行也由小写字母构成。判断文本中是否含有任何不良单词。例如,若rob是不良单词,那么文本problem含有不良单词。 【输入】第一行为一个整数n,表示不良单词的个数。接下来n行是词典。下面一行为一个整数m,表示文本的行数。接下来m

文档评论(0)

1亿VIP精品文档

相关文档