有人能举例说明二叉树和二叉搜索树的区别吗?


当前回答

在二叉搜索树中,所有节点都按照特定的顺序排列——根节点左侧的节点的值小于根节点,节点右侧的所有节点的值大于根节点的值。

其他回答

在二叉搜索树中,所有节点都按照特定的顺序排列——根节点左侧的节点的值小于根节点,节点右侧的所有节点的值大于根节点的值。

二叉搜索树是一种特殊的二叉树,它表现出如下性质:对于任意节点n, n的左子树中每个后代节点的值都小于n,而右子树中每个后代节点的值都大于n。

二叉树

二叉树可以是任何有两个子结点和一个父结点的树。它可以实现为链表或数组,或与您的自定义API。一旦你开始向它添加更具体的规则,它就会变得更专门化。最常见的实现是,在左边添加较小的节点,在右边添加较大的节点。

例如,一个大小为9,高度为3的标记二叉树,其根节点的值为2。树是不平衡的,没有排序。 https://en.wikipedia.org/wiki/Binary_tree

例如,在左边的树中,A有6个子结点{B,C,D,E,F,G}。它可以转化成右边的二叉树。

二分查找

二分搜索是一种用于在节点链上查找特定项的技术/算法。二分搜索适用于已排序的数组。

二叉搜索将目标值与数组的中间元素进行比较;如果它们不相等,则消除目标不能说谎的那一半,继续搜索剩下的一半,直到成功或剩下的一半为空。https://en.wikipedia.org/wiki/Binary_search_algorithm

表示二叉搜索的树。这里搜索的数组是[20,30,40,50,90,100],目标值是40。

二叉搜索树

这是二叉树的一种实现。这是专门用于搜索的。

二叉搜索树和b树数据结构都是基于二叉搜索的。

二叉搜索树(BST),有时称为有序或排序二叉树,是一种特殊类型的容器:在内存中存储“项”(如数字、名称等)的数据结构。https://en.wikipedia.org/wiki/Binary_search_tree

一个大小为9,深度为3,根为8的二叉搜索树。树叶没有被抽干。

最后是一个比较知名数据结构和算法性能的模式:

图片取自《算法(第4版)》

二叉树:每个节点最多有两个叶的树

  1
 / \
2   3

二叉搜索树:用于搜索。二叉树,其中左子节点只包含值小于父节点的节点,而右子节点只包含值大于或等于父节点的节点。

  2
 / \
1   3

二叉树是具有两个子树(左子和右子)的一种特殊形式。 它是简单地用树形结构表示数据

二叉搜索树(BST)是一种特殊类型的二叉树,它满足以下条件:

左子节点小于其父节点 右子节点大于其父节点