两个二叉树是同构的意味着什么?

时间:2009-04-12 23:10:02

标签: tree binary-tree computer-science isomorphism

两个二叉树同构是什么意思?我一直在网上看,我似乎无法找到明确的解释。

据我所知,如果它们具有相同的形状,则两棵树是同构的。所以我猜两个相同的树,它们可以在节点中包含不同的值。

3 个答案:

答案 0 :(得分:39)

同构来自希腊语“相同的形状”(就像isobar是具有相同气压的点和多边形意味着“多边形”)所以你的理解是正确的。但是,在这种情况下,不要假设形状的错误是物理形状(就像树有一个根,一个左节点和一个右节点;例如见下文)。数学家有自己的语言,只有有时与英语有关系: - )

这不仅仅是二元树。在数学中,如果两个结构的属性被保留而不管它们的表达如何都是同构的(你可以有一个将A转换为B而另一个从B转换为A而不丢失信息的函数)。

对于您的特定情况,它是树中保留的信息。例如,如果该信息是已排序的元素{1,2,3},那么树根本不必是相同的物理形状 - 以下两个将是同构的:

  2      1
 / \      \
1   3      2
            \
             3

有序链表(或排序数组)对于那些也是同构的,因为在这种情况下,两者之间的转换中不会丢失任何信息。

如果二进制树以排序顺序无关的方式使用(即“包”类容器),那么信息将只是任何顺序的内容,并且以下所有内容都是同构的(第二个最后一个只是一个包,最后一个是一个列表):

  2      1           2   3                   +---+  +---+  +---+
 / \      \         /     \      +-------+   | 3 |->| 1 |->| 2 |
1   3      2       1       2     | 1,3,2 |   +---+  +---+  +---+
            \     /         \    +-------+
             3   3           1

当然,根据您的需要,未分类的树可能会被视为有点浪费,但这与此特定讨论无关。

答案 1 :(得分:4)

以下条件必须满足两棵树同构:
1.两个树是同构的,当且仅当它们在每个级别中保留相同的级别和相同的顶点时才不同。

2.当且仅当它们具有相同的光谱度时,两棵树是同构的。

3.当且仅当它们在每个级别具有相同程度的光谱时,两个树是同构的。

  1. 顶点的叶子后代的总数和顶点的级别数都是树形同构不变量。
  2. IN简单的话:
    如果通过执行任意数量的翻转可以从其他树获得一棵树,即交换多个节点的左子节点和右子节点,则两棵树是同构的。

    同构树的例子: isomorphic trees

    价: 1。http://www14.in.tum.de/konferenzen/Jass03/presentations/eterevsky.pdf 2。http://www.geeksforgeeks.org/tree-isomorphism-problem/

答案 2 :(得分:1)

我认为你的理解非常正确。如果忽略这些值并只查看结构,那么对于第一个树中的每个节点,在另一个树中必须有相应的节点,反之亦然。

当然,两棵树都有相同数量的节点。 此外,您可以编写一个(超级天真)算法,通过尝试所有可能的映射函数来确认这种同构,并确保第一个树中的每个节点都映射到另一个节点中的节点,相应的映射发生在父母和两个孩子。 有明显有效的算法来检查这一点。

首先阅读graph isomorphism,您可能会受益;树是一种特殊的(更容易解决)的情况,因为它们没有周期。