二叉查找树(二叉搜索树)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了 二叉查找树(二叉搜索树)相关的知识,希望对你有一定的参考价值。
一.什么是二叉查找树?
二叉查找树, 或者是一个空树, 或者是具有如下性质的二叉树:
(1).若它的左子树不空,则其左子树上的所有结点的值均小于它根结点的值; (2).若它的右子树不空,则其右子树上的所有结点的值均大于它根结点的值; (3).它的左、右子树也分别为二叉查找树。
下图就是一颗二叉查找树
二叉查找树是具有特殊性质的二叉树, 其节点数据结构定义如下:
package searchTree; /** * Created by xinfengyao on 16-12-28. */ public class BinaryNode<T> { T data; BinaryNode<T> left; BinaryNode<T> right; public BinaryNode() { } public BinaryNode(T data) { this(data, null, null); } public BinaryNode(T data, BinaryNode<T> left, BinaryNode<T> right) { this.data = data; this.left = left; this.right = right; } }
二.树操作
明白了什么是二叉查找树, 那么二叉查找树的基本操作又该如何实现呢?
1.查找操作
在二叉查找树中, 查找节点x的过程如下:
(1). 若二叉树是空树, 则查找失败
(2). 若x等于根节点的数据, 则查找成功, 否则.
(3) 若x小于根节点的数据, 则递归查找其左子树, 否则
(4). 递归查找其右子树.
根据上述步骤, 就可以写出二叉查找树的查找操作的代码:(后续添加...)
2.插入操作
二叉查找树b插入x的过程如下:
(1).若b是空树, 则直接将插入的节点作为根节点插入
(2).若x等于根节点的数据的值, 则直接返回, 否则
(3).若x小于根节点数据的值, 则将x要插入的节点的位置改为b的左子树, 否则
(4).将x要插入节点的位置, 改为b的右子树.
根据上述步骤,写出二叉查找树的插入操作代码:(后续添加...)
3.删除操作
以上是关于 二叉查找树(二叉搜索树)的主要内容,如果未能解决你的问题,请参考以下文章