根据Wikipedia,制作后缀树实现时的一个重要选择是节点之间的父子关系。最常见的是使用称为兄弟列表的链表。
这在Java中是如何工作的?
答案 0 :(得分:2)
在兄弟列表中,每个节点都有两个引用:first-child
和next-sibling
。这使您可以从first-child
开始迭代节点的所有子节点,然后关注next-sibling
,直到找到next-sibling
为null
的孩子。我不明白为什么Java会与任何其他编程语言有任何不同。
值得注意的是,此表示实际上与二叉树的标准表示相同,其中left
拼写为first-child
,right
拼写为next-sibling
。这演示了二叉树与具有相同节点数的常规树之间的1-1
关系。 (一开始可能看起来很矛盾,但请注意,二叉树可能只有left
个孩子,或者只有right
个孩子,这些被认为是不同的。相比之下,在一般的树中,只是节点生成一个孩子的一种方式。
答案 1 :(得分:-1)
Parent有一个子节点列表(数组,双链表等) 每个孩子都有一个指向其父母的链接。遍历非常简单,因为您不需要堆栈。