有人能举例说明二叉树和二叉搜索树的区别吗?
当前回答
二叉树是具有两个子树(左子和右子)的一种特殊形式。 它是简单地用树形结构表示数据
二叉搜索树(BST)是一种特殊类型的二叉树,它满足以下条件:
左子节点小于其父节点 右子节点大于其父节点
其他回答
在二叉树中,每个节点有两个子节点:左节点和右节点。 二叉搜索树是一种特殊的树,其中节点被排序,左节点比父节点小,左节点比父节点大。 二叉树允许重复值,二叉搜索树不允许重复值,而且在二叉搜索树中执行任何类型的操作都比在二叉树中更快,因为BST是排序的
二叉搜索树是一种特殊的二叉树,它表现出如下性质:对于任意节点n, n的左子树中每个后代节点的值都小于n,而右子树中每个后代节点的值都大于n。
A binary tree is made of nodes, where each node contains a "left" pointer, a "right" pointer, and a data element. The "root" pointer points to the topmost node in the tree. The left and right pointers recursively point to smaller "subtrees" on either side. A null pointer represents a binary tree with no elements -- the empty tree. The formal recursive definition is: a binary tree is either empty (represented by a null pointer), or is made of a single node, where the left and right pointers (recursive definition ahead) each point to a binary tree.
二叉搜索树(BST)或“有序二叉树”是一种二叉树,其中节点是按顺序排列的:对于每个节点,其左子树中的所有元素都小于该节点(<),而其右子树中的所有元素都大于该节点(>)。
5
/ \
3 6
/ \ \
1 4 9
上面所示的树是一棵二叉搜索树——“根”节点为5,其左子树节点(1,3,4)< 5,右子树节点(6,9)为> 5。递归地,每个子树也必须服从二叉搜索树约束:在(1,3,4)子树中,3是根,1 < 3和4 > 3。
注意问题中的确切措辞——“二叉搜索树”不同于“二叉树”。
在二叉搜索树中,所有节点都按照特定的顺序排列——根节点左侧的节点的值小于根节点,节点右侧的所有节点的值大于根节点的值。
二叉树表示一种数据结构,它由只能有两个子引用的节点组成。
另一方面,二叉搜索树(BST)是一种特殊形式的二叉树数据结构,其中每个节点都有一个可比较的值,较小的值子连接到左边,较大的值子连接到右边。
因此,所有的BST都是二叉树,但只有一些二叉树也是BST。通知BST是二叉树的一个子集。
因此,二叉树比二叉搜索树更像是一种通用的数据结构。你还需要知道二叉搜索树是一棵排序树而一般的二叉树没有这样的规则。
二叉树
二叉树不是BST;
5
/ \
/ \
9 2
/ \ / \
15 17 19 21
二叉搜索树(排序树)
二叉搜索树也是二叉树;
50
/ \
/ \
25 75
/ \ / \
20 30 70 80
二叉搜索树节点属性
还要通知BST中的任何父节点;
所有左边节点的值都小于父节点的值。在上面的例子中,值为{20,25,30}的节点都位于50的左边(左后代),它们都小于50。 所有正确节点的值都大于父节点的值。在上面的例子中,值为{70,75,80}的节点都位于50的右边(右后代),它们都大于50。
二叉树节点没有这样的规则。二叉树节点的唯一规则是有两个子结点,所以它自己解释了为什么叫二叉树。
推荐文章
- set()是如何实现的?
- .Net数据结构:ArrayList, List, HashTable, Dictionary, SortedList, SortedDictionary—速度,内存,以及何时使用每个?
- 为什么std::map被实现为红黑树?
- 实现嵌套字典的最佳方法是什么?
- 段树、区间树、二叉索引树和范围树之间有什么区别?
- 为什么我应该使用Deque而不是Stack?
- .Net中的优先级队列
- 为什么java.util.Set没有get(int index)?
- Python集vs列表
- 地图和字典的区别是什么?
- 跳跃表vs.二叉搜索树
- 谷歌Chrome显示JSON AJAX响应树,而不是纯文本
- 如何将列表转换为地图?
- 为什么我们没有一个数据结构
- 树数据结构