码迷,mamicode.com
首页 > 其他好文 > 详细

(3) 二叉查找树(二叉搜索树)

时间:2016-12-29 03:23:51      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:代码   它的   bin   create   成功   删除   二叉树   tree   插入   

一.什么是二叉查找树?

二叉查找树, 或者是一个空树, 或者是具有如下性质的二叉树:

 (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.删除操作

(3) 二叉查找树(二叉搜索树)

标签:代码   它的   bin   create   成功   删除   二叉树   tree   插入   

原文地址:http://www.cnblogs.com/NewMan13/p/6230652.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!