Suffix tree—后缀树
l 简介
后缀树是一种PAT树,它描述了给定字符串的所有后缀,许多重要的字符串操作都能够在后缀树上快速地实现。
l 定义
一个长度为n的字符串S,它的后缀树定义为一棵满足如下条件的树:
n 从根到树叶的路径与S的后缀一一对应。即每条路径惟一代表了S的一个后缀;
n 每条边都代表一个非空的字符串;
n 所有内部节点(根节点除外)都有至少两个子节点。
由于并非所有的字符串都存在这样的树,因此S通常使用一个终止符号进行填充(通常使用$)。
l 优点
n 匹配快。对于长度为m的模式串,只需花费至多O(m)的时间进行匹配。
n 空间省。Suffix tree的空间耗费要低于Suffix trie,因为Suffix tree除根节点外不允许其内部节点只含单个子节点,因此它是Suffix trie的压缩表示。
待续……