有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

二叉搜索树的java顺序,它按预顺序打印自身

我在准备考试,我发现了这个问题

假设二叉树预排序打印(打印、递归调用左、递归调用右)方法给出以下输出:

{10, 8, 1, 9, 12, 15, 14}

如果我们知道这是一个二叉搜索树,那么该树是如何构建的

所以如果我没有错的话,它必须是这样的:

      10
     /  \
   8     12 
 /   \    \
1    9     15
            \
             14

对吗


共 (2) 个答案

  1. # 1 楼答案

    在二元搜索树中,左子级应该低于其父级,右子级应该大于其父级,因为14应该位于15的左侧

          10
         /  \
       8     12 
     /   \    \
    1    9     15
               /
              14
    

    HERE你可以找到一个很好的BST解释

  2. # 2 楼答案

    这是不正确的,因为树必须保持其搜索能力,这意味着它必须保持一个恒定的形式。如果节点14是正确的子节点,则会丢失此表单。14应该是节点15的左子节点。如果您查看节点8,我们会看到,如果值小于8,则它位于左侧,否则该值为右侧子节点

                10
               /  \
              8    12
             / \    \
            1   9   15
                    /
                   14