即使它们不同,两个不同的树的遍历顺序是否可以相同?


11

这个问题在很大程度上解释了它们可以,但是没有显示任何示例,即存在两个具有相同预遍历的不同树。

还提到了,尽管两个不同的树在结构上不同,但它们的有序遍历可以相同。有这个例子吗?


2
这是非常入门的练习。您尝试了什么?在哪里被卡住?
拉斐尔

1
即使您具有后置订单,除了进行预购,遍历外,您仍然可以获得不同的树。为什么在给定的顺序和后序遍历下树不是唯一可能的?您可以在从按顺序表示形式到二叉树中找到按顺序的示例。也相关/重复:顺序前,顺序后和顺序中的哪些组合是唯一的?
迪克林

Answers:


28

树示例(图片)

     A:                 B:
     ‾‾                 ‾‾
     1                  1
    /                  / \
   2                  2   3
  /  
 3   

这是一个适合您的情况的示例,树A根的值为1,左子节点的值为2,他的左子节点的左子节点的值为3。

树B的根值为1,左子节点的值为2,右子节点的值为3。

在这两种情况下,Preorder遍历都是1-> 2-> 3。


11
实际上,这是一条通用规则的特定情况,即对于某个顺序的任何树,都有一个线性树,该线性树只有左(或仅右)子级具有相同的顺序。
Dancrumb

5
@Dancrumb这又是一条通用规则的特定情况,即对于具有N个节点的任何树,以及具有N个节点的任何树形(=未标记树),都有一种标记后者的方法,以便它与以下节点共享遍历前者。这适用于任何遍历(前/后/按顺序访问)。

8

nn1,2,,n

这意味着我们可以命名任何二叉树结构的节点,以便它将生成与另一个给定树相同的预序列。

如果我们必须假设树的其他属性,则此方法将无效。例如,如果树被认为是二叉搜索树,并且所有关键字都不相同,则其预订顺序将唯一地确定该树。


8

计数论点

nnthCn=(2n)!/(n!(n+1)!).

    o         o         o         o         o
   /         /         / \         \         \
  o         o         o   o         o         o      .
 /           \                     /           \
o             o                   o             o

n!

(2n)!(n+1)!=2n(2n1)(n+2).

n!nn!Cn>1n>1.n


1

关于第二个问题,是的,两个结构不同的树可以具有相同的有序遍历。这样的例子之一是:

     A:                 B:

     1                  2
    / \                  \
   2   3                  1
                           \
                            3

两棵树的有序遍历是相同的。2-> 1-> 3

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.