二分搜索树看这篇就足够了
二分搜索树(BST):中序遍历结果为递增序列 BST是一种特殊的二叉树,其定义如下: BST :在二叉树的基础上,任意一个节点满足大于左子树中的所有节点,小于右子树中的所有节点。 注意点: BST的定义中没有等号 ,后续代码中可以看到,在插入时,相等的元素会被忽略掉。 BST的中序遍历结果为递增序列(应用很广),证明:L<node<R; BST是动态数据结构 ,即容量会自动扩缩(插入,删除)。 插入过程:牢记BST的定义,为null时才插入。 private Node add(Node node,E e) :向以 node 为根节点的BST中插入新的元素 e ,并返回新的根节点。 private Node add(Node node,E e){ if(node==null){ return new Node(e); } if(e.compareTo(node.e)<0){//左边插入。其余不变 node.left=add(node.left,e); }else if(e.compareTo(node.e)){ node.right=add(node.right,e); } //相等,忽略。 return node; } public void add(E e){//从根节点开始找。 root=add(root,e); } 删除过程(最复杂):牢记BST的定义,找到时才删除。