public class BinaryTreeTest { public static void main(String[] args) { int[] dataIntArr = {2,3,1,7,10,9,24,30,25}; BinaryTree root = BinaryTree.getBinaryTree(dataIntArr); System.out.println("数组中的数据:"); print(dataIntArr); System.out.println("先序遍历:"); xian(root); } private static void xian(BinaryTree root) { if(root.left != null ){ xian(root.left); } System.out.print(root.data+";"); if(root.right != null ){ xian(root.right); } } public static void print(int[] obj){ if(obj.length != 0){ System.out.print(obj[0]+";"); for(int i = 1;i<obj.length;i++){ System.out.print(obj[i]+";"); } System.out.println(); } } } //这个类似于C 语言中的结构体 class BinaryTree{ BinaryTree left; BinaryTree right; int data; public BinaryTree(int data){ this.data = data; this.left = null; this.right = null; } public static BinaryTree getBinaryTree(int[] data){ BinaryTree root = null; if(data.length != 0){ root = new BinaryTree(data[0]); for(int i = 1;i<data.length;i++){ root.init(root, data[i]); } } return root; } private void init(BinaryTree root,int data){ if(data >= root.data ){ if(root.right == null){ root.right = new BinaryTree(data); }else{ init(root.right,data); } }else{ if(root.left == null){ root.left = new BinaryTree(data); }else{ init(root.left,data); } } } }