我想用O(m^2)而不是Ukkonen写一个天真的建筑算法来编写后缀树类。天真的后缀树在Java中的实现
我的疑问是关于如何表示树。到目前为止,我已经得到了这个。但我不认为这是节点和边的写类结构。任何有关如何保持节点和边缘之间的映射/关系的建议。重要的一点是,在边缘我们只是存储开始和结束索引以节省空间。
class suffixTree{
Node[] nodes;
Edge[] edge;
}
class Node{
int node_id;
Edge[] outgoingEdges;
}
class Edge{
int start_index;
int end_index;
int start_node_id;
int end_node_id;
}
我不明白你为什么需要'nodes'和'edges'。您应该只需要对根节点的引用。每个叶节点都应该包含对字符串中偏移量的引用。 'Edge.start_node_id'是不必要的。 – 2015-02-24 12:56:49
非常感谢您的回复。你能否详细说明一下。可能会有一些阶级结构。 – Andy897 2015-02-24 14:44:27
我告诉过你我将对班级结构所做的改变。剩下的就好了。 – 2015-02-24 16:20:09