【数据结构】将有序数组转为二叉搜索树
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();
}
}
相关文章推荐
- Python dict dictionaries Python 数据结构——字典
- 数据结构复习
- 数据结构与算法-内行看门道
- Java数据结构之快速排序
- 数据结构和算法
- 【数据结构】二叉树
- 数据结构--数组和ArrayList
- 【数据结构】 二叉树
- 数据结构之优先级队列(二叉堆)
- 常用树类数据结构总结-二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)的性能分析
- C++算法与数据结构学习笔记------单链表实现多项式
- 数据结构初学过程中对算法效率度量的理解
- 【数据结构】二叉树相关操作
- Java千百问_06数据结构(006)_java基本数据类型如何转换
- 二叉树主要知识点总结
- HDU 2874 LCA转RMQ+并查集
- HDU 2586 LCA转RMQ
- ZOJ 3195 LCA转RMQ
- 数据结构 并查集
- Java千百问_06数据结构(005)_数值中为什么会出现下划线