/********************************二叉树*********************************************************/
import java.util.*;
public class BitTree
{
public BitTree(){}
public BitTree(String str)
{
data=str;
lchild=null;
rchild=null;
}
public static void createBitTree(BitTree tree,Scanner in)//前序生成二叉树
{
System.out.println("enter the string");
String s=in.next();
if(s.equals("over"))
tree=null;
else
{
tree.data=new String(s);
tree.lchild=new BitTree();
createBitTree(tree.lchild,in);
tree.rchild=new BitTree();
createBitTree(tree.rchild,in);
}
}
public static void traverseTree(BitTree root)//遍历二叉树
{
if(root==null)
System.out.print(" null ");
else
{
traverseTree(root.lchild);
System.out.println(root.data);
traverseTree(root.rchild);
}
}
private BitTree lchild;
private BitTree rchild;
private String data;
/*************************************************************************************************
******二叉树测试************************************************************
import java.util.*;
public class BitTreeTest {
public static void main(String[] args) {
BitTree tree=new BitTree("ch");
Scanner in=new Scanner(System.in);
BitTree.createBitTree(tree, in);
BitTree.traverseTree(tree);
}
}
总结犯了两个很大的毛病。导致第一次无法通过。
(1)没有实例化域就使用它。NULL是非实例化对象,用它就会引发空指针错误。
(2)私有变量无法通过访问器函数来改变它的值