Java 二叉搜索树的顺序,该树按预先顺序打印自身
我在准备考试,我发现了这个问题 假设二叉树预排序打印(打印、递归调用左、递归调用右)方法给出以下输出:Java 二叉搜索树的顺序,该树按预先顺序打印自身,java,binary-tree,Java,Binary Tree,我在准备考试,我发现了这个问题 假设二叉树预排序打印(打印、递归调用左、递归调用右)方法给出以下输出: {10, 8, 1, 9, 12, 15, 14} 如果我们知道这是一个二叉搜索树,那么该树是如何构建的 所以如果我没有错的话,它必须是这样的: 10 / \ 8 12 / \ \ 1 9 15 \ 14 对吗 这是不正确的,因为树必须保持其搜索功能,这意味着它必须保持不变的
{10, 8, 1, 9, 12, 15, 14}
如果我们知道这是一个二叉搜索树,那么该树是如何构建的
所以如果我没有错的话,它必须是这样的:
10
/ \
8 12
/ \ \
1 9 15
\
14
对吗 这是不正确的,因为树必须保持其搜索功能,这意味着它必须保持不变的形式。如果节点14是正确的子节点,则会丢失此表单。14应该是节点15的左子节点。如果您查看节点8,我们会看到,如果值小于8,则它位于左侧,否则该值为右侧子节点
10
/ \
8 12
/ \ \
1 9 15
/
14
在二元搜索树中,左子级应该低于其父级,右子级应该大于其父级,因为
14
应该是15
10
/ \
8 12
/ \ \
1 9 15
/
14
您可以找到BST的一个很好的解释如果它是一个二叉树,则它是不正确的。这14个应该是15岁的左撇子;“左侧低于父级,右侧大于父级。”很好的解释,也请查看