我已阅读帖子Ukkonen's suffix tree algorithm in plain English?。但目前还不清楚如何使用此算法获取叶标签。
在后缀树中,叶标签是数字i,使得S [i..n]是叶子代表的后缀。如果我想要这样的标签,它的总复杂度仍然是O(n)吗?
怎么做?
答案 0 :(得分:1)
我找到了解决方案。在每个节点中记录另一个L
变量,以存储所有祖先的end - start
之和。该值表示在特定节点处结束的子串的长度,即对于叶子,它是后缀的长度。只要添加了树节点或拆分了树节点,就会更新L
。
然后叶标签只是n - leaf.L