预订和与Inorder Traversal的关系

时间:2014-09-05 05:52:23

标签: algorithm data-structures graph tree inorder

我发现如果我们有Preorder和Inorder Traversal,我们就会有一个独特的树。

我可以得出结论:

对于每个Preorder Traversal,我们有多个Inorder Traversal。这是正确还是错误的结论?每个人都会帮助我并添加一些细节。

再次感谢。

2 个答案:

答案 0 :(得分:2)

是的,因为从单个预订序列中您可以创建多个树。例如:[4,3,1,2]可以被重复为具有根4,子3和2的树。然后您可以插入1作为3的左或右子。取决于您将插入它的位置序列会改变。

您也可以通过这种方式对其进行推理:您拥有 n 数字,您可以使用 n!排列。如果排列的数量等于您可以在 n 数字中创建的可能树的数量,则可以从遍历生成树。事实并非如此,但是你可以创建许多树,其中每个节点只有一个左子或只有一个右子,这给你2 * n!还有更多,所以必须有一个排列,可以产生超过1树=>超过1次遍历遍历。

在一般情况下,这当然是正确的,BST具有独特的顺序序列。

答案 1 :(得分:0)

真, 例如: 给出前序遍历 ABDEC

      a
     / \
    b   c
   / \
  d   e

许多inorder遍历是可能的: baedc, dbeac 等等...