我们如何在后缀树中使用链接列表来显示父子关系?

时间:2012-11-22 22:21:10

标签: java data-structures suffix-tree

根据Wikipedia,制作后缀树实现时的一个重要选择是节点之间的父子关系。最常见的是使用称为兄弟列表的链表。

这在Java中是如何工作的?

2 个答案:

答案 0 :(得分:2)

在兄弟列表中,每个节点都有两个引用:first-childnext-sibling。这使您可以从first-child开始迭代节点的所有子节点,然后关注next-sibling,直到找到next-siblingnull的孩子。我不明白为什么Java会与任何其他编程语言有任何不同。

值得注意的是,此表示实际上与二叉树的标准表示相同,其中left拼写为first-childright拼写为next-sibling。这演示了二叉树与具有相同节点数的常规树之间的1-1关系。 (一开始可能看起来很矛盾,但请注意,二叉树可能只有left个孩子,或者只有right个孩子,这些被认为是不同的。相比之下,在一般的树中,只是节点生成一个孩子的一种方式。

答案 1 :(得分:-1)

Parent有一个子节点列表(数组,双链表等) 每个孩子都有一个指向其父母的链接。遍历非常简单,因为您不需要堆栈。