这是输入文本“mississippi”的后缀树的可视化图形。在这个例子中,我正在搜索的关键字是“si”。我想我明白了如何获得“si”的第一个索引
但是现在第二次出现“si”...我是否继续搜索下一个出现的子树#7?对我来说真的没有意义。
或者,是否必须以不同的方式组装树以支持多个索引?
答案 0 :(得分:1)
问题是树中没有足够的信息。
指向标有6
的节点的路径表示原始单词中出现两个(通常是所有)。您要做的是当您按算法描述处理前缀时,您希望在节点中存储索引。一般来说,算法不会存储这样的信息,但很容易修改它。
每次访问节点时,写入将原始字符串中的位置追加到匹配位置列表。