二叉搜索树的实现 java

package hello;
public class BinaryTree {
    private Node root;

    public BinaryTree() {
        this.root = null;
    }

    public void insert(int data) {
        root=insert(root, data);
    }
    private Node insert(Node node, int data) {
        if (node == null) {
            node = new Node(data);
        }else{ 
            if(data <= node.data) {
                node.left = insert(node.left, data);
            } else {
                node.right = insert(node.right, data);
            }
        }
        return node;
    }

    public void buildTree(int[] data) {
        for (int i = 0; i < data.length; i++) {
            insert(data[i]);
        }
    }
    
    public void print(){
        printNode(root);
        System.out.println();
    }
    
    private void printNode(Node node){
        if(node==null)
            return;
        printNode(node.left);
        System.out.print(node.data+"*****");
        printNode(node.right);
    }
    public static void main(String[] args) {
        int[] data = { 8, 1, 7, 8, 5, 6, 4, 8, 9, 3, 0, 2 };
        BinaryTree tree=new BinaryTree();
        tree.buildTree(data);
        tree.print();
    }
}
class Node {
    Node left;
    Node right;
    int data;

    public Node(int data) {
        this.left=null;
        this.right=null;
        this.data = data;
    }
}

二叉排序树的定义 :
    二叉排序树(Binary Sort Tree)又称二叉查找(搜索)树(Binary Search Tree)。其定义为:二叉排序树或者是空树,或者是满足如下性质的二叉树:
①若它的左子树非空,则左子树上所有结点的值均小于根结点的值;
②若它的右子树非空,则右子树上所有结点的值均大于根结点的值;
③左、右子树本身又各是一棵二叉排序树。
  上述性质简称二叉排序树性质(BST性质),故二叉排序树实际上是满足BST性质的二叉树。

原文地址:https://www.cnblogs.com/yunger/p/7505496.html