初学二叉树的感受:
理解如何创建二叉树便能懂得二叉树的遍历,对递归调用方法以及返回值理解很重要,理解过程中添加的注释欢迎指正,再次体会到理解的快乐哈哈。
代码:
public class ptree {
public static class TNode {
String data;
TNode lchild;
TNode rchild;
}
public TNode creatTree(TNode t) {
Scanner scanner = new Scanner(System.in);
String check;
System.out.println("请输入节点信息");
check = scanner.nextLine();
if (check.equals("#")) {
t = null;
} else {
t = new TNode();
t.data = check;
System.out.println("请输入" + t.data + "的左孩子节点信息");
t.lchild = creatTree(t.lchild);
System.out.println("请输入" + t.data + "的右孩子节点信息");
t.rchild = creatTree(t.rchild);
}
return t;
}
public void preOrder(TNode t) {
if (t != null) {
System.out.print(t.data + " ");
preOrder(t.lchild);
preOrder(t.rchild);
}
}
public void inOrder(TNode t) {
if (t != null) {
inOrder(t.lchild);
System.out.println(t.data + " ");
inOrder(t.rchild);
}
}
public void lastOrder(TNode t) {
if (t != null) {
lastOrder(t.lchild);
lastOrder(t.rchild);
System.out.println(t.data + " ");
}
}
public static void main(String[] args) {
ptree P = new ptree();
TNode t = new TNode();
t = P.creatTree(t);
P.preOrder(t);
P.inOrder(t);
P.lastOrder(t);
}
冲。。。