Algorithm 给定一个前序和序序序列,可以有多少级序BST序列?

Algorithm 给定一个前序和序序序列,可以有多少级序BST序列?,algorithm,binary-tree,binary-search-tree,inorder,preorder,Algorithm,Binary Tree,Binary Search Tree,Inorder,Preorder,当我试图打印BST的级别顺序时,这个问题提示了我 这是一个 Pre-Order Sequence: 4, 1, 2, 3, 5, 6, 7, 8 In_order Sequence : 1, 2, 3, 4, 5, 6, 7, 8 具有上述pre_顺序和In_顺序的BST的级别顺序为 [4,2,6,1,3,5,7,8] 然而,对于相同的预订单序列,该级别的订单序列似乎是可能的[4,1,5,2,6,3,7,8]。我不知道怎么做。我正试图弄明白这一点 我无法在纸上(图纸)构建满足所有预订单、订单和

当我试图打印BST的级别顺序时,这个问题提示了我

这是一个

Pre-Order Sequence: 4, 1, 2, 3, 5, 6, 7, 8
In_order Sequence : 1, 2, 3, 4, 5, 6, 7, 8
具有上述
pre_顺序
In_顺序
的BST的级别顺序为
[4,2,6,1,3,5,7,8]

然而,对于相同的预订单序列,该级别的订单序列似乎是可能的<代码>[4,1,5,2,6,3,7,8]。我不知道怎么做。我正试图弄明白这一点


我无法在纸上(图纸)构建满足所有预订单、订单和级别订单序列的BST

如果将顺序遍历与前/后顺序遍历结合起来,就足以重建二叉树。此外,在BST(二进制搜索树)的情况下,仅后序或预序就足够了

在您的案例中,从预排序
4,1,2,3,5,6,7,8
重构BST会得到以下BST:

     4
   /   \
  1     5
   \     \
    2     6
     \     \
      3     7
             \
              8
这再次给出了唯一的层次顺序遍历
[4,1,5,2,6,3,7,8]

另见:


如果您有顺序遍历和前/后顺序遍历,这足以重建二叉树。此外,在BST(二进制搜索树)的情况下,仅后序或预序就足够了

在您的案例中,从预排序
4,1,2,3,5,6,7,8
重构BST会得到以下BST:

     4
   /   \
  1     5
   \     \
    2     6
     \     \
      3     7
             \
              8
这再次给出了唯一的层次顺序遍历
[4,1,5,2,6,3,7,8]

另见:


如果您有顺序遍历和前/后顺序遍历,这足以重建二叉树。此外,在BST(二进制搜索树)的情况下,仅后序或预序就足够了

在您的案例中,从预排序
4,1,2,3,5,6,7,8
重构BST会得到以下BST:

     4
   /   \
  1     5
   \     \
    2     6
     \     \
      3     7
             \
              8
这再次给出了唯一的层次顺序遍历
[4,1,5,2,6,3,7,8]

另见:


如果您有顺序遍历和前/后顺序遍历,这足以重建二叉树。此外,在BST(二进制搜索树)的情况下,仅后序或预序就足够了

在您的案例中,从预排序
4,1,2,3,5,6,7,8
重构BST会得到以下BST:

     4
   /   \
  1     5
   \     \
    2     6
     \     \
      3     7
             \
              8
这再次给出了唯一的层次顺序遍历
[4,1,5,2,6,3,7,8]

另见:


  • 以下组合将生成唯一的二叉树(可以是BST)

    因此,在您的情况下,inorder和pre order将生成唯一的二叉树,在您的情况下是BST,所以该树的级别顺序将是唯一的

    Pre-Order Sequence: 4, 1, 2, 3, 5, 6, 7, 8
    In_order Sequence : 1, 2, 3, 4, 5, 6, 7, 8
    
    所以树将是

    level 0- 4
    level 1- 1,5
    level 2- 2,6
    level 3- 3,7
    level 4- 8
    
    级别顺序为

    4,1,5,2,6,3,7,8


    在排序中,始终存在唯一的级别顺序遍历

    以下组合将生成唯一的二叉树(可以是BST)

    因此,在您的情况下,inorder和pre order将生成唯一的二叉树,在您的情况下是BST,所以该树的级别顺序将是唯一的

    Pre-Order Sequence: 4, 1, 2, 3, 5, 6, 7, 8
    In_order Sequence : 1, 2, 3, 4, 5, 6, 7, 8
    
    所以树将是

    level 0- 4
    level 1- 1,5
    level 2- 2,6
    level 3- 3,7
    level 4- 8
    
    级别顺序为

    4,1,5,2,6,3,7,8


    在排序中,始终存在唯一的级别顺序遍历

    以下组合将生成唯一的二叉树(可以是BST)

    因此,在您的情况下,inorder和pre order将生成唯一的二叉树,在您的情况下是BST,所以该树的级别顺序将是唯一的

    Pre-Order Sequence: 4, 1, 2, 3, 5, 6, 7, 8
    In_order Sequence : 1, 2, 3, 4, 5, 6, 7, 8
    
    所以树将是

    level 0- 4
    level 1- 1,5
    level 2- 2,6
    level 3- 3,7
    level 4- 8
    
    级别顺序为

    4,1,5,2,6,3,7,8


    在排序中,始终存在唯一的级别顺序遍历

    以下组合将生成唯一的二叉树(可以是BST)

    因此,在您的情况下,inorder和pre order将生成唯一的二叉树,在您的情况下是BST,所以该树的级别顺序将是唯一的

    Pre-Order Sequence: 4, 1, 2, 3, 5, 6, 7, 8
    In_order Sequence : 1, 2, 3, 4, 5, 6, 7, 8
    
    所以树将是

    level 0- 4
    level 1- 1,5
    level 2- 2,6
    level 3- 3,7
    level 4- 8
    
    级别顺序为

    4,1,5,2,6,3,7,8


    在排序中,总是会有唯一的级顺序遍历

    我的疑问是,对于上述给定的前序和顺序,为什么可能有两个级顺序?您的第一级顺序是错误的。这意味着,如果您从给定的前序和顺序构造树,您将得到唯一的树,该树的级顺序将是[4,1,5,2,6,3,7,8][4,2,6,1,3,5,7,8]我的疑问是,对于上述给定的前序和顺序,为什么可能有两个级别顺序?您的第一个级别顺序是错误的。这意味着如果您根据给定的前序和顺序构造树,您将得到唯一的树,该树的级别顺序将是[4,1,5,2,6,3,7,8]而不是[4,2,6,1,3,5,7,8]我的疑问是,对于上述给定的前序和顺序,为什么可能有两级顺序?您的第一级顺序是错误的。这意味着,如果您从给定的前序和顺序构造树,您将得到唯一的树和该树的级别顺序将是[4,1,5,2,6,3,7,8]而不是[4,2,6,1,3,5,7,8]我的疑问是,对于上述给定的前序和顺序,为什么可能有两级顺序?您的第一级顺序是错误的。这意味着,如果您从给定的前序和顺序构造树,您将得到唯一的树和该树的级别顺序将是[4,1,5,2,6,3,7,8]而不是[4,2,6,1,3,5,7,8]看这个。我有一些相关的问题。看这个。我有一些相关的问题。看这个。我有一些相关的问题。看这个。我有一些相关的问题。