public class BinaryTree {
public Node build(int[] a) throws Exception {
if((a==null) || (a.length==0)){
throw new Exception();
}
Node root = new Node(a[0]);
for(int i=1; i<a.length; i++){
insert(root, new Node(a[i]));
}
return root;
}
private void insert(Node parent, Node n){
if(n.value < parent.value){
Node left = parent.left;
if(left != null){
insert(left, n);
}else{
parent.left = n;
}
}else{
Node right = parent.right;
if(right != null){
insert(right, n);
}else{
parent.right = n;
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
BinaryTree bt = new BinaryTree();
int[] a = {7,2,4,8,3,5,1,9,0,6};
Node root = null;
try {
root = bt.build(a);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Tools.printTreeInOrder(root);
}
}
构造二进制树
最新推荐文章于 2022-08-16 13:00:00 发布