package test_6;
public class BTClass {
BTNode<Character> b_49;
String bstr_49;
public BTClass() {
b_49=null;
}
int i_49=0;
public void CreatBT_preOrder(BTNode<Character> tn_49,String preStr_49) {
char c_49=preStr_49.charAt(i_49++);
if(c_49!='#') {
tn_49=new BTNode<Character>(c_49);
CreatBT_preOrder(tn_49.lchild_49,preStr_49);
CreatBT_preOrder(tn_49.rchild_49,preStr_49);
}else {
tn_49=null;
}
}
public void preOrder(BTNode<Character> tp_49) {
if(tp_49!=null) {
System.out.print(tp_49.data_49+" ");
preOrder(tp_49.lchild_49);
preOrder(tp_49.rchild_49);
}
}
public static void main(String args[]) {
BTClass t=new BTClass();
t.CreatBT_preOrder(t.b_49,"AB#C##D##");
t.preOrder(t.b_49);
}
}
要求:由标明空子树的先根遍历序列建立一棵二叉树
我代码中的CreatBT_preOrder就是用来实现此功能的,但是用我的preOrder方法输出的时候,什么都没有输出,似乎在CreatBT_preOrder中声明的左子树右子树对象都死了,请问是为什么呢?我这个代码又该怎么改呢?本人递归和参数传递学得不是很好,希望能讲的细一点。