zoukankan      html  css  js  c++  java
  • 二叉搜索树的实现 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性质的二叉树。

  • 相关阅读:
    简单的结账功能(可用于各种结账)
    有关菜单进行“估清”的功能
    在线客服~~
    在windows下安装GIT
    GIT之二 基础篇(2)
    简单模仿javascript confirm方法的例子
    微信公众平台开发 第三篇
    微信公众平台开发 第二篇
    微信公众平台开发 第一篇
    GIT之二 基础篇(1)
  • 原文地址:https://www.cnblogs.com/yunger/p/7505496.html
Copyright © 2011-2022 走看看