将数组存入二叉树
手工创建二叉树并实现前、中、后序排列很简单,当尝试将数组存入二叉树时,感觉就没那么容易了,当时分析得很简单就是在数组中任意取一个数作为根结点,然后将剩余的数与该结点进行比较,比根结点小的放到左结点上,大的放到右结点上,我本想用一次循环将所有的数字就各归其位,在一次比较中将所有的数分成了两类,一类比根结点大一类比根结点小,虚拟机将它们赋值时就会无所是从。 总想将所有工作一次完成 , 于是就磕死在这个地方了。
真正要实现将数组存入二叉树我的实现方法是:先将数组中的第一个元素作为根结点的数据
int n = array[0];
root = new Node(n);
然后循环调用向树中加入数据的方法,并向其中传入结点和数组中数据:
for(int i=1;i<array.length;i++){
addTotree(root,array[i]);
}
在将数组中数据加入到树的相应位置时应先创建一个结点对象
// 把传入的数创建为一个二叉树的节点
Node newnode=new Node(data);