【数据结构】将有序数组转为二叉搜索树

来源:互联网 发布:览物之情 得无异乎 编辑:程序博客网 时间:2024/05/21 10:47
//将有序数组转化为二叉搜索树    //二叉搜索树:每一个节点的值大于左孩子的值,小于右孩子的值,如果采用中序遍历,输出结果为从小到大的    public BinaryTree arrayToBST(T array[],int start,int end)    {        if(start>end)        {            return null;        }        //将数组的中间值赋给节点,递归调用完成左子树和右子树的创建        int mid = start+(end-start)/2;        root = new BinaryTree<T>(array[mid],arrayToBST(array,start,mid-1),arrayToBST(array,mid+1,end));        return root;    }


二叉树的结构定义如下:

/** * Created by novax_000 on 2016/5/1. */public class BinaryTree<T> {    public T value;    public BinaryTree<T> left;    public BinaryTree<T> right;    public BinaryTree(T value, BinaryTree<T> left, BinaryTree<T> right) {        super();        this.value = value;        this.left = left;        this.right = right;    }    public BinaryTree() {        super();    }}


0 0
原创粉丝点击