有序和无序(有根)树之间的差异

时间:2012-09-21 06:39:41

标签: algorithm tree

我正在阅读Robert Sedwick的算法。本书中的一些定义如下所示。

  

树(也是有序树)是连接到的节点(称为根)   一系列不相交的树木。这样的序列称为森林。

     

有根树(或无序树)是一个节点(称为根)   连接到多个有根树的树。 (这样的多重集称为   无序的森林。

我对上述文字的疑问是

  1. 我在理解上述定义方面有困难。任何人都可以用例子来解释。
  2. 作者对不相交的树的意思是什么?
  3. 作者对多重植根树有何意义?
  4. 感谢您的时间和帮助

1 个答案:

答案 0 :(得分:2)

  1. 通过此定义的树或多或少是我们通常通过树理解的树:连接到(子)树的有序序列的节点。这是一个递归定义:如果序列为空,则节点称为 leaf,,如果不是,则序列中的每个树也是“连接到(子)树的有序序列的节点。“
  2. 通过不相交,作者意味着子树没有共同的节点。
  3. 该定义意味着有根树的子树不是特定顺序,并且可以重复它们。 multiset有点像允许倍数的集合。
  4. 有序树(第一个定义的“树”)具有特定顺序的子树,并且子树序列不能包含两次相同的树,因为子树必须是不相交的。有根的树没有这些限制;根据这个定义,一个根可能有一个子树两次,在一个类似于一个循环的结构中。

    我没有Sedwick的书来检查这个定义是否有意义或为什么有意义;更常见的定义或有根树将使用普通的子树集,而不是多集。也许意图是允许节点与其子节点之间存在多个链接,同时禁止其他类型的循环,例如兄弟姐妹和堂兄弟之间的链接。