Suffix Tree—后缀树

Suffix Tree—后缀树

Suffix tree—后缀树

l  简介

后缀树是一种PAT树,它描述了给定字符串的所有后缀,许多重要的字符串操作都能够在后缀树上快速地实现。

l  定义

一个长度为n的字符串S,它的后缀树定义为一棵满足如下条件的树:

n  从根到树叶的路径与S的后缀一一对应。即每条路径惟一代表了S的一个后缀;

n  每条边都代表一个非空的字符串;

n  所有内部节点(根节点除外)都有至少两个子节点。

由于并非所有的字符串都存在这样的树,因此S通常使用一个终止符号进行填充(通常使用$)。

Suffix Tree—后缀树_第1张图片

l  优点

n  匹配快。对于长度为m的模式串,只需花费至多O(m)的时间进行匹配。

n  空间省。Suffix tree的空间耗费要低于Suffix trie,因为Suffix tree除根节点外不允许其内部节点只含单个子节点,因此它是Suffix trie的压缩表示。

Suffix Tree—后缀树_第2张图片

Suffix Tree—后缀树_第3张图片

待续……

你可能感兴趣的:(Suffix Tree—后缀树)