有人能举例说明二叉树和二叉搜索树的区别吗?
当前回答
二叉树:每个节点最多有两个叶的树
1
/ \
2 3
二叉搜索树:用于搜索。二叉树,其中左子节点只包含值小于父节点的节点,而右子节点只包含值大于或等于父节点的节点。
2
/ \
1 3
其他回答
二叉搜索树:当对二叉树进行序遍历时,您将得到插入项的排序值 二叉树:在任何遍历中都没有找到排序的顺序
在二叉搜索树中,所有节点都按照特定的顺序排列——根节点左侧的节点的值小于根节点,节点右侧的所有节点的值大于根节点的值。
二叉树:每个节点最多有两个叶的树
1
/ \
2 3
二叉搜索树:用于搜索。二叉树,其中左子节点只包含值小于父节点的节点,而右子节点只包含值大于或等于父节点的节点。
2
/ \
1 3
二叉树是一种树,其中每个节点最多可以有2个子节点。
二叉搜索树是对它的进一步修改,赋予父结点和两个子结点一定的关系。因为,只有两个子结点,即左子结点和右子结点;关系式定义如下:
左子<=父<=右子
其实就是这么简单。
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。
注意问题中的确切措辞——“二叉搜索树”不同于“二叉树”。
推荐文章
- 在javascript中从平面数组构建树数组
- 为什么我们使用数组而不是其他数据结构?
- 在Java中从HashMap获取键
- 数组与链表
- set()是如何实现的?
- .Net数据结构:ArrayList, List, HashTable, Dictionary, SortedList, SortedDictionary—速度,内存,以及何时使用每个?
- 为什么std::map被实现为红黑树?
- 实现嵌套字典的最佳方法是什么?
- 段树、区间树、二叉索引树和范围树之间有什么区别?
- 为什么我应该使用Deque而不是Stack?
- .Net中的优先级队列
- 为什么java.util.Set没有get(int index)?
- Python集vs列表
- 地图和字典的区别是什么?
- 跳跃表vs.二叉搜索树