经典指数          
原因
2096
浏览数
0
收藏数
 

怎样编写一个程序,把一个有序整数数组放到二叉树中?

     举报   纠错  
 
切换
1 个答案
典型的二插搜索树创建过程 二插搜索树:它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 插入过程:  向一个二叉排序树中插入一个结点的算法,过程为:若是空树,则将结点作为根结点插入,否则:若节点的值等于根结点的数值,则返回,否则:若节点值小于根结点的数值,则把结点插入到左子树中,否则:把结点插入到右子树中。  public class TreeNode { int val; TreeNode left; TreeNode right; public TreeNode(int _val,TreeNode _left,TreeNode _right) { this.val=_val; this.left=_left; this.right=_right; } } public class SortArrToBinaryTree { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub SortArrToBinaryTree sortArrToBinaryTree = new SortArrToBinaryTree(); int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; TreeNode root = null; for (int i : arr) { root=sortArrToBinaryTree.insertNode(root, i); } } TreeNode insertNode(TreeNode root, int val) { if (root == null) return new TreeNode(val, null, null); if (val < root.val) root.left = insertNode(root.left, val); else if (val > root.val) root.right = insertNode(root.right, val); return root; } }
 
切换
撰写答案