【发布时间】:2021-11-28 22:02:04
【问题描述】:
【问题讨论】:
-
嗨@Siddhartha,下面的解决方案能帮助您理解这里的主要概念吗?请告诉我们。
标签: algorithm data-structures binary-search-tree
【问题讨论】:
标签: algorithm data-structures binary-search-tree
值 22 放错了位置。根 (17) 左侧的节点不应大于它。这不仅是直接子树 (6) 的规则,而且对于所有左子树都必须为真。
想象一下,您将使用二分搜索在这棵树中搜索值 22:然后您将 22 与根的值进行比较,并决定查看 右 子树(因为它更大)。你不会在那里找到它,因此你会得出结论,这棵树的值不是 22。
【讨论】:
二叉树:在计算机科学中,二叉树是一种树数据结构,其中每个节点最多有两个孩子,称为左孩子和右孩子。
二叉搜索树:在计算机科学中,二叉搜索树 (BST),也称为 有序 或 排序二叉树,是一个有根的二叉树数据结构,其内部节点每个都存储一个大于该节点左子树中所有键且小于其右子树中所有键的键。
请注意,定义涉及术语subtree,而不是child。我认为您对此有些困惑。
为什么是子树?好吧,因为我们想以明确的方式执行insert 操作:如果我们将 17、6 和 19 放入二叉树并寻找插入 22 的节点位置,我们应该把它放在哪里?
如果第二个定义为真,那么将 22 放置在何处将是不确定的。我们可以将其放置为 9 的右孩子或 19 的右孩子。
第一个定义要求我们把它作为 19 的右孩子。
【讨论】: