您的位置:首页 > 理论基础 > 数据结构算法

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

2016-05-03 15:22 281 查看
//将有序数组转化为二叉搜索树
//二叉搜索树:每一个节点的值大于左孩子的值,小于右孩子的值,如果采用中序遍历,输出结果为从小到大的
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();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: