数据结构学习——二分搜索树(1)

       二分搜索树(Binary search tree):满足任何节点的键值大于等于该节点左子树中的所有键值,小于等于该节点右子树中的所有键值的树。(如下图)

数据结构学习——二分搜索树(1)

        (使用Java实现二分搜索树,由于该数据结构的特点所以要求存入的元素必须可以比较,这里通过继承Comparable类来实现)

数据结构学习——二分搜索树(1)

     二分搜索树是一种二叉树,而二叉树天生就具有递归性所以一下代码都用递归的方式。

    一、添加操作(add)

    方法1:

(public方法供外界调用)

数据结构学习——二分搜索树(1)

(私有递归算法供本身调用)

数据结构学习——二分搜索树(1)


    方法2:算法思想和方法1不同,方法2 是返回插入的新节点后的二分搜索树的根节点

数据结构学习——二分搜索树(1)

例如要插入 {5,3,4,6,8,2} 这几个数字

首先插入5  root = 5  => 然后插入3 root =>3 以此类推再进过比较最后得到

                                5
                              /   \
                            3      6 
                           / \       \  
                         2    4       8