首页 > 其他分享 >二叉排序树

二叉排序树

时间:2022-12-07 00:55:45浏览次数:32  
标签:二叉 int public 升序 排序 BinarySortTree

通过二叉中序排序树能够实现升序排序。

public class BinarySortTreeDemo2 {
    public static void main(String[] args) {
        int arr []={1,2,56,43,3,2,46,34};
        //创建二叉树对象。
        BinarySortTree binarySortTree=new BinarySortTree();
        for(int i=0;i<arr.length;i++){

            //用循环添加结点到创建的二叉树中,
            binarySortTree.add(new Node(arr[i]));
        }

        //中序遍历二叉树
        System.out.println( "中序二叉树排序");
        binarySortTree.infixOrder();

    }
}
class BinarySortTree{
    private Node root;
    public void add(Node node){
        if(root==null){
            root=node;
        }
        else root.add(node);
    }
    public void infixOrder(){
        if(root!=null){
            root.infixOrder();
        }
        else System.out.println("二叉树为空");
    }
}
class Node{//创建Node结点
    int value;
    Node left;
    Node right;
    public Node(int value){
        this.value=value;
    }
    @Override
    public String toString(){
        return "Node [value="+value+"]";
    }


    //添加结点的方法。
    public void add(Node node){
        if(node==null){
            return;
        }
        //判断输入结点的值与当前根节点值的大小关系
        if(node.value<this.value){
            if(this.left==null){
                this.left=node;
            }
            else {
                this.left.add(node);
            }

        }
        else {//添加的节点值大于当前结点值
            if(this.right==null){
                this.right=node;

            }
            else {
                //不满足就继续递归右子树
                this.right.add(node);
            }
        }
    }
    public void infixOrder(){
        if(this.left!=null){
            this.left.infixOrder();
        }
        System.out.println(this);
        if(this.right!=null){
            this.right.infixOrder();
        }

    }
}

image

标签:二叉,int,public,升序,排序,BinarySortTree
From: https://www.cnblogs.com/JK8395/p/16961923.html

相关文章