java用递归的方式实现二叉搜索树,说明一点,二叉平衡 树是二叉搜索树的进化体。二叉搜索树构建时的难点在于节点的插入,插入节点的方法与查询和类似,都是用递归的方式。
/**
* 构建的二叉搜索树,平衡二叉树是二叉搜索树的进化体
*/
class Tree{
int value;
Tree left;
Tree right;
Tree(int value){
this.value = value;
}
void addNode(Tree oldtree,Tree tree){
if(tree.value>oldtree.value){
if(oldtree.right==null){
oldtree.right = new Tree(tree.value);
}else{
oldtree = oldtree.right;
addNode(oldtree,tree);
}
}else if(tree.value<oldtree.value){
if(oldtree.left==null){
oldtree.left = new Tree(tree.value);
}else{
oldtree = oldtree.left;
addNode(oldtree,tree);
}
}else if(oldtree.value == tree.value){
return;
}
}
/**
* 二叉树的中序遍历
* @param tree
*/
void trasvalNode(Tree tree){
if (tree.left!=null){
trasvalNode(tree.left);
}
System.out.println(tree.value);
if(tree.right!=null){
trasvalNode(tree.right);
}
}
}
public class Test2 {
public static void main(String args[]){
int nums[] = {40,10,2,3,5,2,65};
Tree tree = new Tree(nums[0]);
for(int i=1;i<nums.length;i++){
tree.addNode(tree,new Tree(nums[i]));
}
tree.trasvalNode(tree);
}
}