二叉搜索树最小值

时间:2015-08-31 20:20:36

标签: binary-search-tree

我是二元搜索树数据结构的新手。有一点我不明白为什么leftest节点是最小的

      10
    /    \
   5      12  
  / \    /  \     
 1   6  0   14

在上面的例子中,0是最小值而不是1.

让我知道我混在哪里。

谢谢!

3 个答案:

答案 0 :(得分:1)

我不太确定你的问题,但二进制搜索的工作方式是将搜索值与节点的值进行比较,从根节点开始(此处为值10)。如果搜索值较小,则它会查看根的左侧节点(值5),否则它会在右侧节点(12)处查找。

只要越来越多的规则被遵循,树中的值就越大并不重要。

实际上,你想要像这样设置树(坏0节点除外),因为树越平衡(左边的节点数与右边的节点数),你的搜索越快将是!

例如,树平衡算法可能会在值列表中查找中值,并将其作为根节点的值。

答案 1 :(得分:1)

该树不是二叉搜索树。

  

创建二进制搜索树是一个从添加开始的过程   元件。

     

你可以用数组来做。

首先没有元素所以让它成为root。然后开始添加元素作为node。如果新值大于之前添加数组[2 x n + 1](最后一个值的调用索引:n)。如果它小于之前将其添加到数组[2 x n]。因此,任何节点剩下的所有值都小于它,并且任何节点右边的所有值都大于它。即使10和6的位置也不能是11.(在你的树上,它实际上并非如此。)。这就是全部!

答案 2 :(得分:1)

要将树视为二叉搜索树,它必须满足以下属性:

  

...每个节点中的密钥必须大于存储在左子树中的所有密钥,并且小于右子树中的所有密钥

来源:https://en.wikipedia.org/wiki/Binary_search_tree

您发布的树不是二叉搜索树,因为根节点(10)不小于右子树(节点0)中的所有键