后缀树构造方法讲义.docVIP

  • 5
  • 0
  • 约3.04千字
  • 约 6页
  • 2017-10-28 发布于重庆
  • 举报
后缀树构造方法讲义

后缀树讲义 1.基本定义 后缀:一个长度为m的序列,记为S的第i个后缀,显然=S。 后缀树:一个长度为m的序列S的后缀树是一个有根定向树,别且满足下面条件 它刚好有m个叶节点。 除了根节点之外的每一个内节点至少有两个子节点,并且每条边都对应S的一个非空子序列。 任何从一个内节点出发的两条边对应的子序列的第一个字符都不同。 每一条从根节点出发到叶子节点的路径对应序列S的一个后缀。 第四个条件是后缀树的主要特征。 图1:序列xabxa$对应的后缀树 路径的标签:我们称一个路径对应的序列叫路径的标签。 一个节点的标签:从根节点到这个节点的路径对应的序列。 注:并不是所有的序列都对应有后缀树,比如序列xabxa就没有后缀树因为后缀xa刚好是后缀xabxa的前缀,因此标签为序列xa的路径并不是叶节点,此时xabxa没有后缀树,为了解决这一问题,通常我们在序列末尾加上一个$字符(不同于序列中出现的任何字符)以解决这个问题,因为此时任何一个后缀都不可能是另外一个后缀的前缀。 隐含后缀树:序列S的隐含后缀树指的是,序列S$的后缀树去掉那些有$的边上的$符号,然后将空白的边去掉得到的树。 图2:xabxa的隐含后缀树。 2.后缀树的构造 后缀树的构造方法有很多种,其中Ukkonen’s算法是最容易理解的而且其时间和空间复杂度都是线性的,这里我们只讲这种算法。 该算法根据S的

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档